簡體   English   中英

如何在核心數據中保留MSMutableArray?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM