只是在这里要格外小心...
如果我有一个应用程序在 Objective-C 中像这样在 UserDefaults 中保存了一个值:
NSString *newString = textField.text;
[[NSUserDefaults standardUserDefaults] setObject: newString forKey:@"textKey"];
当我发布对现在以 Swift 编码的应用程序的更新时,这是否是检查此值是否存在的正确方法:
if (UserDefaults.standard.object(forKey: "textKey") as? String) != nil {
print("There is a string")
} else {
print("No string exists")
}
我尝试使用 .string(forKey:) 和 .bool(forKey:) ,因为它们已经被引入,但它是最安全的,因为它被保存为一个对象,将它作为一个对象拉出来,然后用 "as?细绳”?
同一问题的棘手版本:
NSDictionary 对象的 NSMutableArray 被保存为 UserDefaults 中的对象
if let oldData = UserDefaults.standard.object(forKey: "theData") as? [NSMutableDictionary] {
}
NSDictionary 和 NSMutableDictionary 在这里可以互换吗?
谢谢!