NSStandardUserDefaults上的iOS/Swift 1.2 NSDictionray/Dictionary

Fit*_*rst 2 dictionary nsdictionary nsuserdefaults ios swift

在'旧'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();
Run Code Online (Sandbox Code Playgroud)

在Swift 1.2下,我收到错误...

无法使用类型'(NSDictionary!)'的参数列表调用'registerDefaults'

所以,有些东西发生了变化,Swift不再接受NSDictionary作为registerDefaults的参数.

那么,我怎样才能将我的NSDictionary转换为Dictionary对象,因为它们不再可以互换?

Pau*_*w11 5

你需要提供一个类型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();
Run Code Online (Sandbox Code Playgroud)