我最近有我的应用程序运行iOS6和iOS7。但是,我注意到,在iOS6模拟器中保存在NSUserDefaults中的iOS7数据加载模拟器不存在时。每个Xcode iOS模拟器操作系统版本的独特NSUserDefaults?
比如,我保存列表这个代码(在模拟器运行iOS6的):
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:myList];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"List_v1"];
我可以轻松地与iOS6的重新启动模拟器并取回我的名单使用此代码没有问题:
NSData *savedList = [[NSUserDefaults standardUserDefaults] objectForKey:@"List_v1"];
myList = [NSKeyedUnarchiver unarchiveObjectWithData:savedList];
但是,如果我重新启动模拟器与iOS7并运行相同的代码来加载列表它不再可用。模拟器是否保持每个操作系统版本的数据不同?
这似乎是这样,而且会有道理。例如,数据可能以不同的格式存储在操作系统版本之间。 – SevenBits