在NSUserDefaults xCode中保存日期

时间:2012-10-26 17:45:40

标签: date plist nsuserdefaults save

我正在尝试在NSUserDefaults中保存一些日期(每天用户输入日期,例如重量并保存它)。我不知道该怎么做。我一直在寻找解决方案。我应该尝试使用plist吗? 感谢

2 个答案:

答案 0 :(得分:1)

  

我不知道如何做到这一点。

这意味着您无法阅读this,这是罪。

[[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"CurrentDate"];
[[NSUserDefaults standardUserDefaults] synchronize];

答案 1 :(得分: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]); } }