-1

NSUserDefaults にいくつかの日付を保存しようとしています (毎日、ユーザーが日付を入力し、体重などを入力して保存します)。どうすればいいのかわかりません。私はかなり長い間、これに対する解決策を探していました。代わりに plists を試す必要がありますか? ありがとう

4

2 に答える 2

1

どうすればいいのかわかりません。

これは、あなたがこれを読んでいないことを意味します。これは罪です。

[[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"CurrentDate"];
[[NSUserDefaults standardUserDefaults] synchronize];
于 2012-10-26T17:48:51.997 に答える
0

大量のデータが必要な場合は、nsuserdefaults 以外のものを使用することをお勧めします。この場合、plist などのファイルは問題ない可能性があります。nsuserdefaults を使用したい場合は、ここに簡単な例を示します。

- (void) viewDidAppear:(BOOL)animated {
//check if nsuserdefaults has the member value set and if not show them the "login" screen
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *member = [defaults stringForKey:@"member"];

if (![member isEqualToString:@"ValidMember"]) {
    ...do some stuff
}

nsuserdefaults への書き込みはこれを使用します

  if ([trimMemberLastName caseInsensitiveCompare:[_memberList objectForKey:memberNumber]] == NSOrderedSame){
    //set a value in nsuserdefaults so we never have to check this
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:@"ValidMember" forKey:@"member"];
    [defaults synchronize];

    return YES;
}

また、plist ファイルの例を次に示します。

- (NSString *) getFilePath {
//get filepath
NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
return [[pathArray objectAtIndex:0] stringByAppendingPathComponent:@"saved.plist"];

}

  • (void) saveData { //データを保存 NSArray *value = [[NSArray alloc] initWithObjects:[myTextField text],[myDatePicker date], nil]; if ([value writeToFile:[self getFilePath] atomically:YES]) { NSLog(@"ファイルを書きました"); } NSLog(@"value = %@", value.description);

}

  • (void) loadData { // データのロード NSString *myPath = [self getFilePath]; NSLog(@"myPath = %@", myPath.description); BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:myPath]; if (fileExists) { NSArray *values = [[NSArray alloc] initWithContentsOfFile:myPath]; myTextField.text = [values objectAtIndex:0]; NSLog(@"myTextField = %@", [values objectAtIndex:0]); myDatePicker.date = [values objectAtIndex:1]; NSLog(@"myDatePkcer = %@", [values objectAtIndex:1]); } }
于 2012-10-26T18:07:46.503 に答える