私のアプリケーションはコアデータを使用し、属性は 'beenSeen'と呼ばれます。ユーザーがアプリをリフレッシュすると、1の「beenSeen」の値はすべて0に変更されます.2000以上のオブジェクトを持つiPod Touchの第2世代では、リフレッシュに1分以上かかります。私のコードは次のようになります:コアデータエンティティの属性を効率的にリセットする方法
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