Just trying to be extra careful here...
If I have an app that saved a value in UserDefaults like this in Objective-C:
NSString *newString = textField.text;
[[NSUserDefaults standardUserDefaults] setObject: newString forKey:@"textKey"];
Would this be the proper way of checking whether this value exists when I release an update to the app that is now coded in Swift:
if (UserDefaults.standard.object(forKey: "textKey") as? String) != nil {
print("There is a string")
} else {
print("No string exists")
}
I try to use .string(forKey:) and .bool(forKey:) since they've been introduced, but is it safest since this was saved as an object to pull it out as an object and then test it with "as? String"?
Trickier version of the same question:
An NSMutableArray of NSDictionary objects was saved as an object in UserDefaults
if let oldData = UserDefaults.standard.object(forKey: "theData") as? [NSMutableDictionary] {
}
Will NSDictionary and NSMutableDictionary be interchangeable here?
Thanks!