如何在自动引用计数中使用委托

2020/12/13 00:31 · ios ·  · 0评论

我跳上了ARC潮流。在过去,我会像这样声明我的委托属性:

@property(assign) id<MyProtocol> delegate;

所以我想我会在ARC下这样做:

@property(weak) id<MyProtocol> delegate;

不是这样 在.m中的@synthesize语句上,我有一个编译错误

*语义问题:__weak属性“ delegate”的现有ivar'delegate'必须为__weak *

我已经宣布它为弱!另外,我如何将实现协议的类传递给弱引用的属性。我是否必须将其包装在这些怪异的obj_unretained调用之一中?

任何帮助,将不胜感激。

“ ivar”表示“实例变量”,尚未显示。我敢打赌,它看起来像这样:

@interface Foo : NSObject {
    id delegate;
}

@property (weak) id delegate;

错误的意思是它必须看起来像这样:

@interface Foo : NSObject {
    __weak id delegate;
}

@property (weak) id delegate;

如果属性声称是弱的,则值最终存储在其中的变量也必须是弱的。

本文地址:http://ios.askforanswer.com/ruhezaizidongyinyongjishuzhongshiyongweituo.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!