我正在关注找到at Apple的示例代码,以便在我的新应用首次运行时加载初始默认值。但我使用的是Swift,所以我转换了代码:
let path = NSBundle.mainBundle().pathForResource("InitialDefaults", ofType: "plist")
let defaults = NSDictionary(contentsOfFile:path!)
NSUserDefaults.standardUserDefaults().registerDefaults(defaults)
Xcode抱怨最后一行的API需要一个字符串,而不是一个字典。当我尝试右键单击定义时,它找不到它。我找不到任何关于此的Swift API文档。我可以找到的所有文档和示例代码都在Obj-C中,它都需要一个字典。
任何人都知道我在这里做错了吗?
答案 0 :(得分:2)
registerDefaults
需要[String : AnyObject]
。所以试试
let path = NSBundle.mainBundle().pathForResource("InitialDefaults", ofType: "plist")
let defaults = NSDictionary(contentsOfFile:path!) as! [String : AnyObject]
NSUserDefaults.standardUserDefaults().registerDefaults(defaults)
更安全的解决方案:
if let path = NSBundle.mainBundle().pathForResource("InitialDefaults", ofType: "plist")
, defaults = NSDictionary(contentsOfFile:path) as? [String : AnyObject]
{
NSUserDefaults.standardUserDefaults().registerDefaults(defaults)
}