2015-09-24 1 views
1

У меня есть коллекция с источником данных Realm. Если я добавляю или обновляю объект Realm в транзакции записи, то сразу попробуйте восстановить его из источника данных, конечно, новая запись еще не закончена. Таким образом, то, что я делаю в настоящее время, добавляет задержку 0,1 секунды перед повторной настройкой.Сколько времени занимает Realm для транзакции записи для выполнения Object add?

Мой вопрос в том, есть ли лучшие подходы? Если нет, то сколько времени (величина 0,0001 сек или 0,01 сек и т. Д.) Выполняет обычную транзакцию Realm write> add transaction? Спасибо!

ответ

2

Если вы не видите обновлений в файл Realm сразу, вы можете вызвать refresh на объекте RLMRealm/Realm вручную принудительно обновить.

Обычно изменения обновляются во всех объектах Realm во всех потоках на следующей итерации цикла запуска (что также можно было бы достичь, введя временную задержку, как вы уже выше!), Но вызов refresh приведет к тому, что эта версия Объект Realm для обновления до завершения текущей итерации цикла выполнения.

+0

Спасибо @Tim - на основе вашего объяснения Я нашел подходы для запуска в следующем цикле: http://stackoverflow.com/questions/7096203/how-to-call-a-method-asap-but-at-earliest- в-следующего выполнения цикла-итерации. Вы сказали «Нормально», поэтому есть исключения время от времени? Я вижу это для больших NSData. Любые другие случаи? – hyouuu

+1

Нет проблем! Да, вы можете отключить это поведение autorefresh, если хотите, что явно требует вызова 'refresh' на объекте Realm, чтобы получить последние обновления. – TiM

+0

Итак, когда включено autorefresh (по умолчанию), гарантировано, что он будет обновлен при следующем проходе? Даже для больших NSData? Просто хочу прояснить :) – hyouuu

Смежные вопросы