似たようなタイトルのこちらを投稿しましたが、別件です。同じ質問で2つの質問をする際の混乱を避けるために、これを別々に投稿しました.
私がやりたいことは、メモリを使い果たすことなく、コア データ ストアに大量のデータを追加することです。ここに私が現在持っているコードがあります:
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Entry"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(version == %@)", @"1.0"];
[request setPredicate:predicate];
NSArray *results = [[AppDelegate applicationDelegate].managedObjectContext executeFetchRequest:request error:nil];
int i = 0;
while (i < results.count) {
Entry *entry = [results objectAtIndex:i];
entry.version = @"1.1";
Entry *entry = [NSEntityDescription insertNewObjectForEntityForName:@"Entry"
inManagedObjectContext:[AppDelegate applicationDelegate].managedObjectContext];
entry.version = existingEntry.version;
[[AppDelegate applicationDelegate].managedObjectContext deleteObject:entry];
i++;
}
しかし、これは一定量のデータを通過した後、メモリが不足します。これは、最初の「結果」のみを取得し、配列全体を処理しない場合にも発生するため、メモリ不足は結果を処理した結果ではないようです。
メモリを使い果たすことなくこれを行うにはどうすればよいですか?