Xcode发现一个问题 ARC禁止在
上发送保留的明确消息_photo = [photo retain];
将其更改为
_photo = [photo];
不起作用
我不想使用-fno-objc-arc来禁用它。
还有其他方法吗?
答案 0 :(得分:4)
如果您想要启用ARC,请执行_photo = photo;
不需要括号。只要_photo不弱,(声明前面有__weak
)ARC就会为你插入一个retain
来电!
答案 1 :(得分:4)
_photo = [photo];
无效。
使用
_photo = photo;
使用ARC的编译器可以智能地了解您要执行的操作,保留或复制或释放。无需使用保留。你的陈述在语法上是错误的。
答案 2 :(得分:1)
ARC为您提供必要的保留和发布消息。你只需要完成作业
_photo = photo;
一切都会好起来的。
答案 3 :(得分:1)
随着ARC的发布,xCode发现了一个问题ARC禁止发送retain ...
的显式消息
-retain
已被弃用。它现在是一个需要编译器插入的函数,并且不允许您调用。 (但它仍然可以被覆盖)。
_photo = [照片];
消息需要目标和选择器。您只提供了一个目标。取下牙箍。作业将自动转换为类似的内容。
[self->_photo release];
self->_photo = [photo retain];