swift - 类没有初始化器错误 Realm 类 Swift

标签 swift realm

我收到一个类没有初始值设定项错误。这不是我设置类(class)的方式吗?这是一个 Realm 对象数据库,我想存储的属性。我是 swift 和 realm 的新手,但我认为这就是完成的方式。如果我取出 init() 函数并只分配它工作的所有值,但是像 justTook 和所有我不想要的属性都以一个值开头,我需要稍后在程序中设置它。

这是我的代码:

class MedInfo: Object {
    //  Info To Be Stored
    @objc dynamic var keyID = UUID().uuidString
    @objc dynamic var medName: String
    @objc dynamic var medDose: String
    @objc dynamic var currentDate: Date
    @objc dynamic var timeTook: Date
    @objc dynamic var lastTook: Date
    @objc dynamic var durationOfTime: Date
    @objc dynamic var doctorName: String
    @objc dynamic var rxDate: Date
    @objc dynamic var medInfo: String
    @objc dynamic var pictureOfMed: UIImage

    override static func primaryKey() -> String? {
        return "keyID"
    }

    convenience init(medName: String, medDose: String, currentDate: Date, timeTook: Date, lastTook: Date, durationOfTime: Date, doctorName: String,rxDate: Date, medInfo: String, pictureOfMed: UIImage) {
        self.medName = medName
        self.medDose = medDose
        self.currentDate = currentDate
        self.timeTook = timeTook
        self.lastTook = lastTook
        self.durationOfTime = durationOfTime
        self.doctorName = doctorName
        self.rxDate = rxDate
        self.medInfo = medInfo
        self.pictureOfMed = pictureOfMed
    }

最佳答案

您需要为所有参数设置默认值,如文档中模糊描述的那样。来自 here :

When using Realm from Swift, the Swift.reflect(_:) function is used to determine information about your models, which requires that calling init() succeed. This means that all non-optional properties must have a default value.

所有示例都说明了这一点,因此请遵循它们。因此,你的类(class)应该被宣布:

class MedInfo: Object {
    //  Info To Be Stored
    @objc dynamic var keyID = UUID().uuidString
    @objc dynamic var medName: String = ""
    @objc dynamic var medDose: String = ""
    @objc dynamic var currentDate: Date = Date()
    @objc dynamic var timeTook: Date = Date()
    @objc dynamic var lastTook: Date = Date()
    @objc dynamic var durationOfTime: Date = Date()
    @objc dynamic var doctorName: String = ""
    @objc dynamic var rxDate: Date = Date()
    @objc dynamic var medInfo: String = ""

    // UIImage not supported, you'll need to store a URL/filename or something else
    @objc dynamic var pictureOfMed: UIImage

关于swift - 类没有初始化器错误 Realm 类 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54757483/

相关文章:

ios - 线程 1 : EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) Relm

android - kotlin - Realm 和包裹

swift - 如何从字典中制作 Decodable 对象?

ios - 检查用户是否在 HealthKit 中授权了步骤

ios - 由于 sprite-kit 游戏中未完成的声音,我的应用程序崩溃了

java - 检测要从 Realm 数据库中删除的对象

swift - 将 XIB View 重用于 Collection View 作为其他 View 的一部分?

ios - 如何在 Swift 的泛型中声明基类?

ios - ld : symbol(s) not found for architecture x86_64 (realm)

ios - 使用 Realm 和 XCTest 进行测试——权限被拒绝?