gpt4 book ai didi

xcode - NSMutableArray 与核心数据一起存储 = WORKS,但在更改数组后不起作用

转载 作者:行者123 更新时间:2023-12-04 09:37:55 24 4
gpt4 key购买 nike

我有一个带有 NSMutableArray 作为属性的 NSManagedObject:

@interface MyObject :  NSManagedObject  
{
}

@property (nonatomic, retain) id a1;

在数据模型中,它被声明为 Transformable .我将 Value Transformer 字段保留为默认值(浅灰色) NSKeyedUnarchiveFromData .

a1 作为对象的一部分创建:
MyObject  *theObject = [NSEntityDescription insertNewObjectForEntityForName:@"MyObject" inManagedObjectContext: myManagedObjectContext];

并初始化:
a1 = [[NSMutableArray alloc] init];

使用 [a1 insertObject:[NSNumber numberWithInt:0] atIndex: 0 ]; 将对象添加到 a1

然后我保存上下文。将上下文加载回存储在 a1 中的所有元素都被保存和加载。 ALL WORKS WELL!
但是,当现在 a1 发生变化时,例如通过向 a1 添加一个更多元素或更改 a1 中的任何元素并且上下文正在保存和加载,a1 的内容是未更改的(它保持所有更改发生之前的状态)。 CHANGES DON'T WORK!
顺便说一下,当应用程序运行时,对 a1 的所有更改都存储在 a1 中。

拜托,你能帮忙吗 - 这里发生了什么?

非常感谢您的帮助!

最佳答案

Array 内部的更改将不起作用,因为 Core Data 无法查看数组。

简短的回答是 不要这样做 .这不是在 Core Data 中存储数组(或字典)的理由。

在 Core Data 中创建一个新实体并创建关系。如果订单很重要,则在子表中放置一个订单属性。

不要将数组存储为二进制对象。

关于xcode - NSMutableArray 与核心数据一起存储 = WORKS,但在更改数组后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3426557/

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