我正在为 WidgetData
类中的 SQLite 数据库初始化变量,但是我现在遇到了一个错误,
Return from initializer without initializing all stored properties
但之前它运行成功。
我关注了this但即使我添加了空值仍然出现错误,请帮助解决此问题。
这是我到目前为止所做的:
import Foundation
class WidgetData {
var id: Int64?
var name: String
var entered : String
var address: String
var formid : Int64?
var formname : String
var formdescription : String
var formcategory : String
init(id: Int64) {
self.id = id
name = ""
entered = ""
address = ""
}
init(formid: Int64) {
self.formid = formid
formname = ""
formdescription = ""
formcategory = ""
}
init(id: Int64, name: String, entered: String, address: String) {
self.id = id
self.name = name
self.entered = entered
self.address = address
}
init(formid: Int64, formname : String, formdescription : String, formcategory : String) {
self.formid = formid
self.formname = formname
self.formdescription = formdescription
self.formcategory = formcategory
}
}
最佳答案
问题在于以下属性:
var name: String
var entered : String
var address: String
var formname : String
var formdescription : String
var formcategory : String
不是可选的,所以它们必须是 initialized :
Classes and structures must set all of their stored properties to an appropriate initial value by the time an instance of that class or structure is created. Stored properties cannot be left in an indeterminate state.
You can set an initial value for a stored property within an initializer, or by assigning a default property value as part of the property’s definition.
因此您可以为它们分配一个默认值,因此您的代码可能是:
import Foundation
class WidgetData {
var id: Int64?
var name: String = ""
var entered : String = ""
var address: String = ""
var formid : Int64?
var formname : String = ""
var formdescription : String = ""
var formcategory : String = ""
init(id: Int64) {
self.id = id
}
init(formid: Int64) {
self.formid = formid
}
init(id: Int64, name: String, entered: String, address: String) {
self.id = id
self.name = name
self.entered = entered
self.address = address
}
init(formid: Int64, formname : String, formdescription : String, formcategory : String) {
self.formid = formid
self.formname = formname
self.formdescription = formdescription
self.formcategory = formcategory
}
}
关于ios - 从初始化程序返回而不初始化所有存储的属性swift ios,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48582440/