我最近有我的應用程序運行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