-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 = [值 objectAtIndex:0]; NSLog(@"myTextField = %@", [values objectAtIndex:0]); myDatePicker.date = [值 objectAtIndex:1]; NSLog(@"myDatePkcer = %@", [values objectAtIndex:1]); } }
于 2012-10-26T18:07:46.503 回答