我有几年前在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"))
以下是我为上述print语句生成false的步骤。
我错过了什么?
答案 0 :(得分:1)
键personDataArray
的值是一个数组,它不是Bool
Swift等价物是
var dataArray = [GD_Owed_Person]()
if let tempArray = UserDefaults.standard.object(forKey:"personDataArray") as? [Data] {
for personData in tempArray {
let personObject = NSKeyedUnarchiver.unarchiveObject(with:personData) as! GD_Owed_Person
dataArray.append(personObject)
}
}
请不要在Swift中使用蛇案(GD_Owed_Person),使用驼峰案例(GDOwedPerson)
答案 1 :(得分:0)
这是错误的:
function f1(event)
{
$.when(
$(this).parent('table#fsg').css("background-color", "red"),
console.log('gff'))
}
正确的方法与上面的代码一样:
print(UserDefaults.standard.bool(forKey:"personDataArray"))
我猜你这里也有问题(尝试arrayForKey):
if ([userData arrayForKey:@"personDataArray"]==nil) {
print("false")
} else {
print("true")
}