如何在Swift for Realm模型中设置主键

我在一个新的iOS Swift项目中使用Realm。我将Xcode 6.0.1与iOS SDK 8.0和Realm 0.85.0一起使用

我正在尝试使用新的Realm主键功能,以便可以进行操作addOrUpdateObject

这是一个示例模型:

import Foundation

import 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

回到顶部