NSUserDefaults实现轻量级的存储数据,可以存储NSString,NSNumber,NSDate,NSArray,NSDictionary,NSData;如果需要存储自定义类型数据可以将其归档并创建NSData来存储
//单例
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
//存储NSString
[userDefaults setObject:@"This is userdefault test" forKey:@"testKey"];
//及时保存
[userDefaults synchronize];
注:
synchronize
NSUserDefaults偶尔不工作,无法保存改动的数据的原因是,NSUserDefaults的机制是,过一段时间,会自动调用自己的函数synchronize去同步数据的。
改动数据后,就退出程序了,即在NSUserDefaults还没来得及synchronize之前就退出程序,就需要手动调用synchronize去保存数据了。
即,在需要的时候,手动调用NSUserDefaults去执行同步synchronize的动作,以及时保存修改的数据。