繁体   English   中英

使用Swift 3在UserDefaults中注册多个值类型

[英]Register multiple value types in UserDefaults with Swift 3

我正在将一个旧的Swift 2项目转换为Swift3。在以前的版本中,我在AppDelegate为未设置的用户默认值注册了默认值,如下所示:

let defaults = NSUserDefaults.standardUserDefaults()
let defaultValues = [
    "stringKey" : "",
    "intKey" : 50
]
defaults.registerDefaults(defaultValues as! [String : AnyObject])

Xcode正在帮助转换它,但是Xcode中的自动转换无法解决以下错误:

异构集合文字只能推断为'[String:Any]'; 如果是故意的,则添加显式类型注释

自动更正终于可以了,但是到那时我已经写了大部分问题,所以我只会在下面添加答案,而不是删除问题。 (此外,自动转换建议比我在下面提供的答案更罗word。)

笔记

  • 这是在Swift 3中注册单个类型的答案
  • 我说的是注册而不是设置多个默认值。

这是Swift 3的语法。我将它包含在AppDelegate上下文中。

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    override init() {
        let defaults = UserDefaults.standard
        let defaultValues : [String : Any] = [
            "stringKey" : "",
            "intKey" : 50
        ]
        defaults.register(defaults: defaultValues)
        super.init()
    }

    // ...
}

请记住,这不会设置值,仅在用户尚未设置它们时提供一些初始默认值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM