gpt4 book ai didi

ios - 如何在核心数据中持久化 NSMutableArray?

转载 作者:行者123 更新时间:2023-12-01 17:31:21 26 4
gpt4 key购买 nike

我使用核心数据并将对象提取到 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];

然后我使用这个可变数组在表格 View 中显示对象。此外,该数组中的数据会随着时间而改变。我想将整个数组保存在 Core Data 中。

我最初的想法是从 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?

最佳答案

数组中的项目已经在 Core Data 中。如果您更改它们,您只需要保存它们。如果您向该数组添加一个项目,那么您需要创建一个新的 NSManagedObject实例并将其放入数组中。

您的代码意味着您不了解 Core Data 的基础知识。我强烈建议您查看有关此框架的文档以更好地理解它。

关于ios - 如何在核心数据中持久化 NSMutableArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21122130/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com