我正在将一个旧的 Swift 2 项目转换为 Swift 3。在以前的版本中,我为未设置的用户默认值注册了默认值,AppDelegate如下所示:
let defaults = NSUserDefaults.standardUserDefaults()
let defaultValues = [
"stringKey" : "",
"intKey" : 50
]
defaults.registerDefaults(defaultValues as! [String : AnyObject])
Xcode 正在帮助转换它,但 Xcode 中的自动转换不适用于以下错误:
异构集合文字只能推断为 '[String : Any]'; 如果这是故意的,请添加显式类型注释
自动更正终于奏效了,但到那时我已经写了这个问题的大部分内容,所以我只会在下面添加答案而不是删除问题。(此外,自动转换建议比我在下面提供的答案更冗长。)
笔记
- 这是在 Swift 3 中注册单一类型的答案。
- 我说的是注册而不是设置多个默认值。