У меня очень странная проблема при повторении через 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
Вскоре, вторая итерация пропускает один элемент. Как это возможно? Есть идеи?
Спасибо!
Некоторые элементы удаляются или помечены как «ложные» в другом потоке? Обратите внимание, что при запускеTransaction() все объекты обновляются с любыми другими изменениями, выполненными в других потоках. Если вы не хотите этого поведения, вы можете начатьTransaction() перед первоначальным назначением билетов (запрос). – bmunk