iOS/Swift 1.2 NSDictionray/Dictionary NSStandardUserDefaults
iOS/Swift 1.2 NSDictionray/Dictionary on NSStandardUserDefaults
在 'old' Swift 中,我曾经像这样注册从 .plist 文件加载的默认值...
let prefs = NSBundle.mainBundle().pathForResource("UserDefaults", ofType: "plist");
let dict = NSDictionary(contentsOfFile: prefs!);
let defaults:NSDictionary! = dict?.valueForKey("defaults") as! NSDictionary;
NSUserDefaults.standardUserDefaults().registerDefaults(defaults);
NSUserDefaults.standardUserDefaults().synchronize();
在Swift 1.2下,我得到错误...
无法使用“(NSDictionary!)”类型的参数列表调用 'registerDefaults'
所以,有些事情发生了变化,Swift 不再接受 NSDictionary 作为 registerDefaults 的参数。
那么,如果我的 NSDictionary 不再可以互换,我该如何将其转换为 Dictionary 对象?
用户默认可以存储NSDictionary对象。这些映射到 Swift 作为 [NSObject : AnyObject]:
试试这个:
NSUserDefaults.standardUserDefaults().setObject(defaults, forKey: "defaults")
var isOk = NSUserDefaults.standardUserDefaults().synchronize();
您需要提供从 NSDictionary
到 [NSObject:AnyObject]
-
的类型转换
使用
let prefs = NSBundle.mainBundle().pathForResource("UserDefaults", ofType: "plist");
let dict = NSDictionary(contentsOfFile: prefs!);
let defaults:NSDictionary! = dict?.valueForKey("defaults") as! NSDictionary
NSUserDefaults.standardUserDefaults().registerDefaults(defaults as [NSObject : AnyObject]);
NSUserDefaults.standardUserDefaults().synchronize();
在 'old' Swift 中,我曾经像这样注册从 .plist 文件加载的默认值...
let prefs = NSBundle.mainBundle().pathForResource("UserDefaults", ofType: "plist");
let dict = NSDictionary(contentsOfFile: prefs!);
let defaults:NSDictionary! = dict?.valueForKey("defaults") as! NSDictionary;
NSUserDefaults.standardUserDefaults().registerDefaults(defaults);
NSUserDefaults.standardUserDefaults().synchronize();
在Swift 1.2下,我得到错误...
无法使用“(NSDictionary!)”类型的参数列表调用 'registerDefaults'
所以,有些事情发生了变化,Swift 不再接受 NSDictionary 作为 registerDefaults 的参数。
那么,如果我的 NSDictionary 不再可以互换,我该如何将其转换为 Dictionary 对象?
用户默认可以存储NSDictionary对象。这些映射到 Swift 作为 [NSObject : AnyObject]:
试试这个:
NSUserDefaults.standardUserDefaults().setObject(defaults, forKey: "defaults")
var isOk = NSUserDefaults.standardUserDefaults().synchronize();
您需要提供从 NSDictionary
到 [NSObject:AnyObject]
-
使用
let prefs = NSBundle.mainBundle().pathForResource("UserDefaults", ofType: "plist");
let dict = NSDictionary(contentsOfFile: prefs!);
let defaults:NSDictionary! = dict?.valueForKey("defaults") as! NSDictionary
NSUserDefaults.standardUserDefaults().registerDefaults(defaults as [NSObject : AnyObject]);
NSUserDefaults.standardUserDefaults().synchronize();