Swift 使用函数初始化结构值
我有一个Swift结构,它有一个Swift 使用函数初始化结构值,swift,init,Swift,Init,我有一个Swift结构,它有一个title属性。在我的初始值设定项中,我可以将属性设置为正常。但是,如果我想将其值的逻辑提取到另一个函数,我会得到一个编译器警告 这项工作: init(document: MyDocument) { documentIdentifier = document.documentIdentifier createDate = document.createDate title = "A Title" } 这失败了: title = g
title
属性。在我的初始值设定项中,我可以将属性设置为正常。但是,如果我想将其值的逻辑提取到另一个函数,我会得到一个编译器警告
这项工作:
init(document: MyDocument) {
documentIdentifier = document.documentIdentifier
createDate = document.createDate
title = "A Title"
}
这失败了:
title = generateTitle(forDocument: document)
编译器在初始化前使用变量“self.title”。如果我在这条线上放置一个静态设置器,错误就会消失。我的generate函数返回一个非可选值。编译器的抱怨是什么?
generateTile
是一个实例方法,但在初始化器返回之前,实例本身还没有创建,因此您无法对其调用任何方法。如果您真的想将title
的设置代码提取到一个单独的方法中,并且您实际上没有从该方法访问任何实例属性,那么您可以将其设置为static
,甚至可以从init
访问。当然,谢谢!一条更有用的错误信息会让我更容易意识到我的错误。