我最近为iOS6和iOS7运行了我的应用程序。但是,我注意到在iOS6模拟器中加载用于iOS7数据时保存在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重新启动模拟器并运行相同的代码来加载列表,它将不再可用。模拟器是否为每个OS版本保持数据分开?
答案 0 :(得分:4)
是的,每个iOS版本都有自己的文件夹:
/Users/YOUR_USER/Library/Application Support/iPhone Simulator/IOS_VERSION
答案 1 :(得分:1)
每个iOS版本(不仅仅是iOS 6或iOS 7,还有iOS 6.1与iOS 6.0分开存储)都将其数据放在自己的文件夹中。此数据不仅仅是NSUserDefaults,还有您的应用程序从/向磁盘读/写的任何其他数据。它们被视为独立的安装,彼此独立。
答案 2 :(得分:0)
不同的操作系统版本确实有不同的默认文件。
这是值得注意的。如果将与设备相关的设置保存为默认设置,则可能会在SIM卡上进行非常混乱的测试。
指出这个是疯狂的。