我在新的iOS项目中使用Realm。我正在插入新的RLMObject
:
let realm = RLMRealm.defaultRealm()
var route = Route()
route.status = "opened"
realm.beginWriteTransaction()
realm.addObject(route)
realm.commitWriteTransaction()
我希望像这样更新route
状态(在单独的函数中):
let realm = RLMRealm.defaultRealm()
let openedRoutes = Route.objectsWhere("status == 'opened'")
var openedRoute = openedRoutes.objectAtIndex(0) as Route
realm.beginWriteTransaction()
openedRoute.status = "closed"
realm.commitWriteTransaction()
但它不会更新任何内容。
我做错了什么?感谢您的时间和帮助。
其他信息
当我执行例如po self
时,日志中存在错误:
error: Error in auto-import:
failed to get module '*' from AST context:
/Users/peterdruska/Library/Developer/Xcode/DerivedData/Cesty-hijwnftlnwubfmgymqpszfmjojrr/Build/Products/Debug-iphoneos/Pods/Realm.framework/Headers/Pods-Realm-umbrella.h:3:9: note: in file included from /Users/peterdruska/Library/Developer/Xcode/DerivedData/Cesty-hijwnftlnwubfmgymqpszfmjojrr/Build/Products/Debug-iphoneos/Pods/Realm.framework/Headers/Pods-Realm-umbrella.h:3:
#import "RLMArray.h"
…
我使用可可豆荚安装了Realm。
答案 0 :(得分:0)
您是否在更新后直接在同一个线程上从同一个Realm访问该对象,以确保您的更改已应用?是否可能发生任何同时写入事务,这会阻止更改生效?如果没有,您在何时何地错过了修改的传播?
如果它是另一个Realm,那么只有在编写了写入事务并且通知了Realm时,您才能期望更新的属性,您可以使用Notification API来确保,例如:
let token = realm.addNotificationBlock { note, realm in
assert(self.lastOpenedRoute.status == "closed")
}
这似乎是a known issue with CocoaPods & LLDB,我们尚未解决。