【发布时间】:2017-02-27 21:29:26
【问题描述】:
我有一个几年前用 Obj C 开发的应用程序。我使用 NSUserDefaults 创建要显示的数据,如下所示:
NSUserDefaults *userData = [NSUserDefaults standardUserDefaults];
if ([userData objectForKey:@"personDataArray"]==nil)
{
mutableDataArray = [[NSMutableArray alloc] init];
}
else
{
// get the array back out of NSUserDefaults
NSArray *tempArray = [userData objectForKey:@"personDataArray"];
// NSLog(@"The count in the temp saved data is %lu", (unsigned long)tempArray.count);
// look for any NSData objects in my temp array
for (NSData *personData in tempArray)
{
// set a instance of the person class to each NSData object found in the temp array
GD_Owed_Person *personObject = [[GD_Owed_Person alloc] init];
personObject = [NSKeyedUnarchiver unarchiveObjectWithData:personData];
// NSLog(@"CHECK ON THE ARRAY %@", personObject.personsBillsArray);
[mutableDataArray addObject:personObject];
}
}
默认名称是personDataArray。
在应用程序的新版本 (Swift 3) 中,我希望使用那些旧的默认值。我遇到的问题是,当我检查这些默认值是否存在时,我得到了错误的回复。
print(UserDefaults.standard.bool(forKey:"personDataArray"))
这是我为上面的打印语句产生错误的步骤。
- 从应用商店下载应用以测试 iPhone。
- 输入一些用户数据并保存。
- 在测试 iPhone 上通过 Xcode 运行新应用。
- 新应用安装和更新旧应用。
- 当我检查 NSUserDefaults 中的 personDataArray 时,打印返回 false
我错过了什么?
【问题讨论】:
标签: ios xcode swift3 nsuserdefaults