私は現在プロジェクトにcoredataを使用しています。しかし、アプリケーションが更新する必要がある54000個のオブジェクトをAPIが返すと、ユーザーはほぼ2時間待たなければなりません。 これは現在のプロジェクトにとって大きな問題です。私はsqliteを使用し、coredataを使わずに何千ものオブジェクトを更新することを考えています。Sqliteまたはコアデータより多くの50000レコードを更新する
Sqliteを使用するのは正しい判断ですか、それともCoreDataの提案ですか?私は決めることができません。どんな助けも素晴らしいでしょう。ありがとうございました。ここで
は私がやっているものです:
NSManagedObjectContext *privateObjectContext = [AppDelegate appDelegate].privateManagedObjectContext;
[privateObjectContext performBlock:^{
int i = 1;
for (NSDictionary *item in itemlist) {
i++;
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:
@"itemID == %@",[item objectForKey:@"item_id"]
]];
NSError *error;
NSMutableArray *inventories = [[NSMutableArray alloc]initWithArray:
[privateObjectContext executeFetchRequest:fetchRequest
error:&error]];
ItemManagedObject *itemMO;
if(inventories.count){
itemMO = inventories.firstObject;
}else{
itemMO = [NSEntityDescription insertNewObjectForEntityForName:@"ItemObject"
inManagedObjectContext:privateObjectContext];
}
[itemMO prepareWithDictionary:item];
}
NSError *error;
if (![privateObjectContext save:&error]) {
completionHandler(NO);
}
}
オブジェクトを現在どのように更新しているかについて、2時間ほどかかりますか?それを改善する方法があるかもしれませんが、あなたが今何をしているのか分からないと言うことは不可能です。 –
はい、私たちはもっと詳しく、どのように更新を処理していますか、コンテキストを保存する頻度、ボトルネックを探すために機器を使用したか、いくつかのコードを投稿してください – trapper
@TomHarringtonコードを追加します。 – mega90