[英]How to persist an MSMutableArray in Core Data?
我使用核心數據並將對象提取到NSMutableArray中:
NSError *error;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Item" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
self.items = [[managedObjectContext executeFetchRequest:fetchRequest error:&error] mutableCopy];
然后,我使用此可變數組在表視圖中顯示對象。 此外,該陣列中的數據會隨着時間而變化。 我想將整個數組保留在Core Data中。
我最初的想法是從核心數據中刪除所有項目,並通過遍歷可變數組中的所有對象來一次將它們持久保存:
- (void)persistAllItemsInCoreData{
[self clearAllItemsFromCoreData];
NSManagedObjectContext *context = [self managedObjectContext];
for(int i = 0 ; i < [items count] ; i++){
Item *item = [NSEntityDescription
insertNewObjectForEntityForName:@"Item"
inManagedObjectContext:context];
item = [items objectAtIndex:i];
}
NSError *error;
if (![context save:&error]) {
NSLog(@"Could not save data: %@", [error localizedDescription]);
}
}
但是,這不起作用。 有沒有更優雅的方法來使用Core Data持久存儲NSMutableArray?
數組中的項目已經在核心數據中。 如果更改它們,則只需要保存它們。 如果將項目添加到該陣列,則需要創建一個新的NSManagedObject
實例並將其放入陣列。
您的代碼意味着您不了解核心數據的基礎知識。 我強烈建議您閱讀有關此框架的文檔,以更好地理解它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.