2014-10-19 3 views
0

У меня очень странная проблема при повторении через RLMArray. Я делаю что-то вроде этого:Realm Cocoa: пропущенный элемент при итерации через RLMArray

let tickets = Ticket.objectsWhere("pendingSync = true") 

for ticket in tickets { 
    print("1. " + ticket.id + ",") 
} 

realm.beginWriteTransaction() 
for ticket in tickets { 
    let ticket = ticket as Ticket   
    ticket.pendingSync = false 

    print("2. " + ticket.id + ",") 
} 
realm.commitWriteTransaction() 

Как ни странно, выход

1. 125, 1. 127, 1. 123, 2. 125, 2. 123

и НЕ

1. 125, 1. 127, 1. 123, 2. 125, 2. 127, 2. 123

Вскоре, вторая итерация пропускает один элемент. Как это возможно? Есть идеи?

Спасибо!

+0

Некоторые элементы удаляются или помечены как «ложные» в другом потоке? Обратите внимание, что при запускеTransaction() все объекты обновляются с любыми другими изменениями, выполненными в других потоках. Если вы не хотите этого поведения, вы можете начатьTransaction() перед первоначальным назначением билетов (запрос). – bmunk

ответ

0

Мутационные элементы во время перечисления в настоящее время не поддерживаются в Realm, но будут поддерживаться в предстоящей версии 0.95.

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

  • Нет связанных вопросов^_^