gpt4 book ai didi

swift - 从文件初始化默认值,Swift 与 Obj-C 不同吗?

转载 作者:行者123 更新时间:2023-11-28 12:59:28 25 4
gpt4 key购买 nike

我正在按照找到的示例代码 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 中,而且都需要一个字典。

有人知道我在这里做错了什么吗?

最佳答案

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)
}

关于swift - 从文件初始化默认值,Swift 与 Obj-C 不同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34257390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com