gpt4 book ai didi

iOS,核心数据 : Faulting NSManagedObjects

转载 作者:行者123 更新时间:2023-11-29 10:40:29 25 4
gpt4 key购买 nike

case 0:
{
NSFetchRequest *request=[NSFetchRequest fetchRequestWithEntityName:@"Grade"];
NSPredicate *predicate=[NSPredicate predicateWithFormat:@"abbr==%@",@"UNDEF"];
[request setPredicate:predicate];
NSArray *result=[_context executeFetchRequest:request error:nil];
Grade *grade=[result lastObject];
duplicate.grade=grade;
break;
}

...

[self backgroundSaveContext];

很简单的问题。 “案例”完成后检索到的对象会发生什么?我应该对对象提出错误还是 ARC 会管理它?此代码不在主线程中执行。

最佳答案

ARC 不管理托管对象的故障。您正在将 duplicate.grade 设置为从您的提取中检索到的对象。如果这是一个强引用,则托管对象将被强烈保留——但这不会影响触发错误。只有当您访问该对象的属性时才会触发故障。

当您使用默认的获取请求选项从商店获取托管对象时,托管对象未实现 - 属性没有附加数据。这是故障状态。当您访问托管对象属性时,Core Data 会“引发故障”——它返回存储以获取属性值并使用这些值填充托管对象。托管对象的属性访问器方法调用 willAccessValueForKey: 将实现(触发)错误。

关于iOS,核心数据 : Faulting NSManagedObjects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24786905/

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