gpt4 book ai didi

ios - 为什么我的 NSManagedObject 子类方法没有被识别?

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

我已经(大量)为一个项目子类化了 NSManagedObject。它在原始项目中无缝且毫不费力地工作。

我将这些文件复制到一个新项目中,手动将适当的 CoreData 类添加到新数据模型中。

不幸的是,我遇到了“问题”。由于某种原因,相关子类的方法被忽略了。两个项目之间的代码完全相同,但我突然遇到无法识别的选择器问题。

NSFetchRequest *blockRequest=[[NSFetchRequest alloc] init];
NSEntityDescription *blockDesc=[NSEntityDescription entityForName:@"AdBlock"
inManagedObjectContext:context];
[blockRequest setEntity:blockDesc];

AdBlock *curBlock=[adBlocks objectAtIndex:blockIndex];

adBlocks=[context executeFetchRequest:blockRequest error:nil];

for (AdBlock *block in adBlocks) {
[block initAdBlock];//Crashes with unrecognized selector
}

我已经检查过,适当的 .m 文件已添加到编译器构建阶段。代码完全是复制和粘贴,并且在两个项目之间是相同的——源有效,目标无效。

我注意到我没有明确告诉上下文它应该返回子类类型,但这在旧项目中不是问题,那么为什么在新项目中它会成为问题呢?

最佳答案

当这样的事情发生在我身上时,我会尝试两种方法。我做的第一件事是确保我正确地#imported NSManagedObject 子类(我忘记这种方式比我应该更频繁),但正如你所说的你复制和粘贴,我不认为这是你的问题。我尝试的第二件事是通过转到文件>新建>文件然后 NSManagedObject 子类然后选择我更改了某些内容的 NSManagedObjects 来重建 NSManagedObjects。我建议根据您的情况重建所有这些对象。看看是否有效。它可能不是,但它是一个简单的起点。

关于ios - 为什么我的 NSManagedObject 子类方法没有被识别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12066101/

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