当我在ARC模式下在CoreData中为我的实体创建模型对象时,它会生成retain而不是strong。那么保留工作并在ARC模式下编译也是如此吗?我认为在ARC模式下我们不能使用release,autorelease和retain关键字?
答案 0 :(得分:4)
你的意思是它会生成这样的@property
声明吗?
@property (nonatomic, retain) MyObject *object;
retain
属性属性表示ARC下的strong
。
答案 1 :(得分:4)
请查看以下答案:https://stackoverflow.com/a/10036821/662605
要点是,如果您@synthesize
属性,那么在引擎盖下生成的代码将依赖于retain
类型(retain
,assign
,{ {1}})。
生成的托管对象子类使用copy
而不是@dynamic
,所有这些东西都是神奇地为你发生的,所以实际上,尽管它很混乱,@synthesize
关键字没有被使用它会看来,因此ARC并没有抱怨......我很确定就是这样。
虽然我确实尝试将实现交换为使用retain
但仍然没有出错,但我认为我们可以在链接上找到答案
任何其他见解都会很好。