Xcode 7.1和Swift 2.1与最新的Realm Swift 0.96.2
我为Realm创建了一个模型类,但它不断地抛出有关inits的错误.我理解了子类的一定程度的初始化器,但我无法解决这个问题,以及它失败的原因.这是我制作的课程:
import UIKit
import RealmSwift
class Boxes: Object {
dynamic var precessor: String = "B";
dynamic var id: Int = 0;
dynamic var boxNumber: String {
return "\(precessor) \(id)"; //computed property
}
dynamic var boxDescription: String? = "";
dynamic var brand: String? = "";
dynamic let dateCreated: NSDate
dynamic var dateUpdated: NSDate?
dynamic var photo: UIImage?
dynamic var tags: NSArray? = [];
override static func primaryKey() -> String? {
return "id"; //sets primary key of the model
}
init(precessor: String, id: Int, description: String, brand: String, dateCreated: NSDate, dateUpdated: NSDate) {
self.precessor = precessor;
self.boxDescription = description;
self.brand = brand;
self.dateUpdated = dateUpdated;
self.dateCreated = dateCreated;
super.init();
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试时它不会构建,它告诉我:
'required' initializer 'init()' must be provided by subclass of 'Object'
Run Code Online (Sandbox Code Playgroud)
我需要添加以下内容:
required init() {
fatalError("init() has not been implemented")
}
Run Code Online (Sandbox Code Playgroud)
这让编译器足够让我构建项目.但是当我运行项目时,它总是出错并在输出中给出fatalError行.我知道这是作为最后的手段初始化器,但我无法弄清楚为什么.
这与我在某处遗漏的超级初始化程序有关吗?我对swift相对较新,但如果我没有将我的类子类化,我可以使我的初始化器工作Object
您需要实现,init()但Xcode不知道如何为您实现,因此它fatalError("init() has not been implemented")会提醒您实现它.
你可能只想打电话给超级.所以:
required init() {
super.init()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1163 次 |
| 最近记录: |