我将字典添加到 NSUserDefaults 并调用“同步”方法,但是当我关闭我的应用程序并重新打开它时,保存在 NSUserDefaults 中的值为零。
#define kStartTime @"startTime"
#define kEndTime @"endTime"
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
NSString *startTime=@"08:00";
NSString *endTime=@"18:00";
NSDictionary *dict=[[NSDictionary alloc] initWithObjectsAndKeys:startTime,kStartTime,
endTime,kEndTime,
nil];
[defaults registerDefaults:dict];
[defaults synchronize];
在viewDidLoad
我称之为的方法中:
NSString *startTimeValue=[defaults stringForKey:kStartTime];
当我在模拟器中重新打开我的应用程序时,startTimeValue 仍然为零。UserDefaults 是否无法保存在模拟器中?
我的意思是当我关闭我的应用程序并在模拟器中重新打开它时,值就消失了。
在我搜索了苹果文档后,我得到了这个。
registerDefaults:
.
正如Apple Document中所说:将指定字典的内容添加到注册域中。
*注册域的内容不写入磁盘;*您需要在每次应用程序启动时调用此方法。您可以在应用程序的 Resources 目录中放置一个 plist 文件,然后使用从该文件中读取的内容调用 registerDefaults:。
所以 的功能registerDefaults:
是在应用程序中设置默认值,默认值不会存储在磁盘中synchronize