Core data ARC中的CoreData模型对象使用retain

Core data ARC中的CoreData模型对象使用retain,core-data,automatic-ref-counting,Core Data,Automatic Ref Counting,当我在ARC模式下为CoreData中的实体创建模型对象时,它会生成retain或strong。那么,在ARC模式下是否保留工作和编译?我认为在ARC模式下,我们不能使用释放、自动释放和保留关键字 您的意思是它生成这样的@属性声明吗 @property (nonatomic, retain) MyObject *object; retain属性表示ARC下的strong 请查看以下答案: 它的要点是,如果你合成你的属性,那么在引擎盖下生成的代码将依赖于保留类型(retain,assign,co

当我在ARC模式下为CoreData中的实体创建模型对象时,它会生成retain或strong。那么,在ARC模式下是否保留工作和编译?我认为在ARC模式下,我们不能使用释放、自动释放和保留关键字

您的意思是它生成这样的
@属性
声明吗

@property (nonatomic, retain) MyObject *object;
retain
属性表示ARC下的
strong


请查看以下答案:

它的要点是,如果你合成你的属性,那么在引擎盖下生成的代码将依赖于保留类型(
retain
assign
copy

生成的托管对象子类使用
@dynamic
而不是
@synthetic
,所有这些事情都在神奇地发生在你身上,所以实际上,尽管它令人困惑,但是
retain
关键字似乎没有被使用,因此ARC没有抱怨。。。我敢肯定就是这样

虽然我尝试将实现交换为使用
@synthetic
,但仍然没有出现错误,但我认为我们可以在链接上找到答案


任何其他见解都会很好。

hmm这很令人惊讶,没有回应?这很好,但并没有真正回答问题,我喜欢这个家伙使用ARC创建了一个项目,在将核心数据添加到组合中时,NSManagedObjects生成的属性使用retain,而不是strong。虽然这在ARC项目中不应该是合法的,除非另外指定为项目的非ARC部分,但这是一种奇怪的情况。应该期望它使用strong not retain,或者至少编译器应该抱怨它与ARC规则不匹配。。。任何其他想法都不会禁止使用
retain
关键字。它禁止使用
retain
选择器。关键字和选择器是完全不同的。见我所链接文件的§7.1.1。