Realm не хочет обновлять значения свойств RLMObject

Я использую Realm в своем новом проекте iOS. Я вставляю новый 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 установлен с использованием какао-бобов.


person petesalt    schedule 26.03.2015    source источник


Ответы (1)


Обращаетесь ли вы к объекту из того же Realm в том же потоке сразу после его обновления, чтобы убедиться, что ваши изменения были применены? Возможно, происходят какие-либо одновременные транзакции записи, которые блокируют вступление изменений в силу? Если нет, то где и когда вам не хватает распространения ваших модификаций?

Если это другой Realm, вы можете ожидать обновленных свойств только после того, как транзакция записи была зафиксирована и Realm был уведомлен, что вы можете убедиться, используя API уведомлений, например:

let token = realm.addNotificationBlock { note, realm in
    assert(self.lastOpenedRoute.status == "closed")
}

Что касается вашей дополнительной информации

Похоже, это известная проблема с CocoaPods и LLDB, которую мы еще не решили. .

person marius    schedule 26.03.2015
comment
Спасибо, Мариус. Все в той же теме. Но, как вы упомянули, когда я установил Realm без использования CocoaPods, все работает нормально. - person petesalt; 27.03.2015