如何在Swift for Realm模型中设置主键
我在一个新的iOS Swift项目中使用Realm。我将Xcode 6.0.1与iOS SDK 8.0和Realm 0.85.0一起使用
我正在尝试使用新的Realm主键功能,以便可以进行操作addOrUpdateObject
。
这是一个示例模型:
import Foundationimport Realm
class Foo: RLMObject {
dynamic var id = 0
dynamic var title = ""
func primaryKey() -> Int {
return id
}
}
以及我如何尝试添加/更新新对象:
let foo = Foo()foo.title = titleField.text
foo.id = 1
// Get the default Realm
let realm = RLMRealm.defaultRealm()
// Add to the Realm inside a transaction
realm.beginWriteTransaction()
realm.addOrUpdateObject(foo)
realm.commitWriteTransaction()
我收到此错误:
RLMExecption’,原因:“ Foo”没有主键,无法更新
这是主键上的文档。我可能没有正确设置它:
http
:
//realm.io/docs/cocoa/0.85.0/api/Classes/RLMObject.html#//api/name/primaryKey
最新的文档现在在这里:https
:
//realm.io/docs/objc/latest/api/Classes/RLMObject.html#//api/name/primaryKey
回答:
primaryKey
需要是一个返回主键属性名称的类函数,而不是返回主键值的实例方法。
class Foo: RLMObject { dynamic var id = 0
dynamic var title = ""
override class func primaryKey() -> String? {
return "id"
}
}
以上是 如何在Swift for Realm模型中设置主键 的全部内容, 来源链接: utcz.com/qa/408979.html