gpt4 book ai didi

objective-c - 核心数据-实例变量更新中的NSManagedObjects

转载 作者:行者123 更新时间:2023-12-03 17:04:25 25 4
gpt4 key购买 nike

假设我通过执行以下操作来获取所有实体 Employee 对象:NSArray *employees = [contextexecuteFetchRequest:request error:&error];

然后,我通过执行以下操作在类中设置一个实例变量:self.allEmployees =Employees;

稍后在我的应用程序中,我将对我的员工对象进行一些修改,但不是通过访问 self.allEmployees。我正在从另一个类修改它们。

我的 self.allEmployees 数组是否会更新为我从另一个类对员工对象所做的更改?或者我的 self.allEmployees 数组是否处于我第一次执行提取时员工对象的状态? (我怀疑是后者)

最佳答案

从获取请求返回的数组包含对实时托管对象的引用。除非您更改不同的 fetchLimit 或 batchSize,否则您将获得一个包含与查询返回对象一样多的故障对象的数组。

当您访问这些故障对象之一的属性时,CoreData 会透明地检索所有属性的实际数据并将其返回给您。

托管对象始终具有其自己的最新值,该值是上次调用的保存值。因此,如果您对 self.allEmployees 进行修改,则需要在 MOC 上调用 save,这会将更改广播到所有其他 employee 对象。

这也是 KVO 对 NSManagedObject 属性起作用的原因,因为它们会收到影响它们的所有已保存更改的通知。

关于objective-c - 核心数据-实例变量更新中的NSManagedObjects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13911694/

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