我目前正在使用coredata爲我的項目。但是,當API返回應用程序需要更新的54000個對象時,用戶必須等待近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