我不知道这是否重要,但这发生在一个extension
。
无论如何,我的老师今天让我们在模型的扩展中创建一个方便的初始值设定项。当他演示时,Xcode 的自动填充为他填写了初始值设定项,但什么也没给我。我问过这个问题,但我们想不通。我们班上的一些人让它工作,而其他人则没有。
从本质上讲,我们有这个:
extension Entry {
//existing initializer
convenience init(title: String, body: String) {
self.init()
self.title = title
self.body = body
}
// new initializer we were creating
convenience init(representation: EntryRepresentation) {
// this next line would **NOT** autofill no matter what I tried
// (both waiting, backing up and retyping a little, or hitting esc)
// it wouldn't even show other, non convenience inits
self.init(title: representation.title, body: representation.body)
}
}
后来,经过一些故障排除(相信我,清理构建文件夹在这里无效(,我意识到我们的老师正在处理他从 Swift 4.2 天开始的模板,并且没有将模板更新到 Swift 5,而我已经启动了一个新项目并使用 Swift 5 作为我的编译器版本。在 Xcode 中切换后,4.2 使自动填充工作,而 5 破坏了它。
显然,切换此埋藏设置是解决此问题的便便解决方法,因此这是一个不错的解决方法:
- 就我而言,我会写出来:
-
Entry.init(
-
- 。这将给我我的自动填充选项
- 使用自动填充获取
-
Entry.init(title: <#String#>, body: <#String#>)
-
- 只需将类名替换为"self"即可获得
-
self.init(title: <#String#>, body: <#String#>)
-