我正在初始化WidgetData
类中SQLite数据库的变量,但我现在遇到了一个错误,
从初始值设定项返回而不初始化所有存储的属性
但以前它运行成功。
我已经遵循了这一点,但即使我添加了它们空值仍然收到错误,帮助解决此问题。
这是我到目前为止所做的:
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
不是可选的,因此必须对其进行初始化:
类因此,和结构必须在创建该类或结构的实例时将其所有存储的属性设置为适当的初始值。存储的属性不能保持不确定状态。
可以在初始值设定项中为存储的属性设置初始值,也可以通过将默认属性值作为属性定义的一部分来分配。
您可以为它们分配一个默认值,因此您的代码可能是:
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
}
}