gpt4 book ai didi

ios - RealmSwift 初始值设定项 - Xcode 修复它一直出错

转载 作者:搜寻专家 更新时间:2023-10-30 21:51:05 26 4
gpt4 key购买 nike

当我想为一个类提供初始化程序时,我无法让 Realm 工作,Xcode 不断地提示错误。

我决定上传两个屏幕截图而不是代码片段,以便更容易看到错误

enter image description here

我听从了建议并最终得到了这个

enter image description here

最后一个错误是“使用未声明的类型‘RLMObjectSchema’”

我用的是最新的0.99版本的RealmSwift

最佳答案

推荐的方法是创建成员便利初始化器,如下所示:

class Item: Object {
dynamic var isBook: Bool = true
dynamic var numberOfPages: Double = 0
dynamic var isInForeignLanguage: Bool = true
dynamic var isFictional: Bool = true
dynamic var value: Int {
get {
return calculalatedValue()
}
}

convenience init(isBook: Bool, numberOfPages: Double, isInForeignLanguage: Bool, isFictional: Bool) {
self.init()
self.isBook = isBook
self.numberOfPages = numberOfPages
self.isInForeignLanguage = isInForeignLanguage
self.isFictional = isFictional
}

...
}

你不能省略默认初始化器,因为 Realm 需要默认初始化器来实例化对象以供查询。当查询到 Realm 时,Realm 会在内部调用默认初始化器来实例化对象。

您也可以覆盖默认初始化程序,但我们不推荐这样做。因为当你覆盖默认初始化器时,由于 Swift 类型系统的限制,你应该覆盖从 ObjC 层继承的其他必需的初始化器。您还应该导入 RealmRealmSwift 框架。因为在那些初始化器的参数中只有 Objective-C 的类。

import RealmSwift
import Realm // Need to add import if you override default initializer!

class Item: Object {
dynamic var isBook: Bool = true
dynamic var numberOfPages: Double = 0
dynamic var isInForeignLanguage: Bool = true
dynamic var isFictional: Bool = true
dynamic var value: Int {
get {
return calculalatedValue()
}
}

required init() {
super.init()
}

required init(realm: RLMRealm, schema: RLMObjectSchema) {
super.init(realm: realm, schema: schema)
}

required init(value: AnyObject, schema: RLMSchema) {
super.init(value: value, schema: schema)
}

关于ios - RealmSwift 初始值设定项 - Xcode 修复它一直出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36824202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com