Мое приложение использует Core Data и имеет атрибут «wasSeen». Когда пользователь обновляет приложение, все значения «wasSeen» 1 меняются на 0. На iPod Touch второго поколения с более чем 2000 объектами обновление занимает более минуты. Мой код выглядит следующим образом:Как эффективно сбрасывать атрибуты в объекте Core Data
for (Deck *deck in self.deckArray) {
if ([deck.beenSeen isEqualToNumber:[NSNumber numberWithInt:1]]) {
[deck setBeenSeen:[NSNumber numberWithInt:0]];
[self.managedObjectContext save:&error];
}
}
Я также рассматриваю возможность удаления SQLite файла и имеющее предупреждение попросить пользователь перезапустить приложение самостоятельно. Выполнение этой уверенности происходит намного быстрее, чем у меня сейчас. Есть ли более быстрый способ обновления объекта? Могу ли я создать резервную копию и скопировать ее? Спасибо за любую помощь.
У вас все еще есть sav e внутри цикла. Думаю, ты собирался это выразить. –
Исправлено - мое плохое. –
Спасибо за легкое изменение. Время сократилось с 55 секунд до 6! – shohaku