Mik*_*e S 45 iphone ios ios5 automatic-ref-counting
我加入了ARC的行列.在过去,我会将我的委托属性声明为:
@property(assign) id<MyProtocol> delegate;
Run Code Online (Sandbox Code Playgroud)
所以我想我会在ARC下做到这一点:
@property(weak) id<MyProtocol> delegate;
Run Code Online (Sandbox Code Playgroud)
不是这样.在.m中的@synthesize语句我有一个编译错误:
*语义问题:__ weak属性'委托'的现有ivar'委托'必须是__weak*
我已经声明它虽然很弱!另外,我如何将实现协议的类传递给弱引用的属性.我是否必须将其包装在其中一个奇怪的obj_unretained调用中?
任何有关这方面的帮助将非常感谢.
tc.*_*tc. 65
"ivar"表示"实例变量",您尚未显示.我打赌它看起来像这样:
@interface Foo : NSObject {
id delegate;
}
@property (weak) id delegate;
Run Code Online (Sandbox Code Playgroud)
错误的含义是它必须如下所示:
@interface Foo : NSObject {
__weak id delegate;
}
@property (weak) id delegate;
Run Code Online (Sandbox Code Playgroud)
如果财产声称很弱,那么价值最终存储的伊娃也必须是弱的.
| 归档时间: |
|
| 查看次数: |
18495 次 |
| 最近记录: |