【发布时间】:2015-12-17 22:03:54
【问题描述】:
Xcode7 和 swift,我的代码:
func loadDefaults() {
let settingBundle = NSBundle.mainBundle().pathForResource("Settings", ofType: "bundle")
if settingBundle == nil {
return
}
let root = NSDictionary(contentsOfFile: settingBundle!.stringByAppendingString("Root.plist"))
let prefrences = root?.objectForKey("PreferenceSpecifiers") as! Array<NSDictionary>
let defautlsToRegister = NSMutableDictionary(capacity: root!.count)
for prefrence in prefrences {
let key = prefrence.objectForKey("Key") as! String!
if key != nil {
defautlsToRegister.setValue(prefrence.objectForKey("DefaultVale"), forKey: key!)
}
}
NSUserDefaults.standardUserDefaults().registerDefaults(defautlsToRegister as [NSObject: AnyObject])
}
问题代码:
NSUserDefaults.standardUserDefaults().registerDefaults(defautlsToRegister as [NSObject: AnyObject])
建筑警告
无法将类型“[NSObject : AnyObject]”的值转换为预期的参数类型“[String : AnyObject]”
更改代码:
NSUserDefaults.standardUserDefaults().registerDefaults(defautlsToRegister as [String: AnyObject])
建筑警告
'NSMutableDictionary' 不能转换为 '[String : AnyObject]'
请教我怎么做?谢谢。
【问题讨论】:
-
请以
defautlsToRegister的类型显示示例 -
是否按照stackoverflow.com/questions/24099165/… 中的建议使用
as!帮助?