gpt4 book ai didi

iphone - 如何将委托(delegate)与自动引用计数一起使用

转载 作者:IT王子 更新时间:2023-10-29 07:38:25 26 4
gpt4 key购买 nike

我加入了 ARC 的行列。在过去,我会像这样声明我的委托(delegate)属性:

@property(assign) id<MyProtocol> delegate;

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

@property(weak) id<MyProtocol> delegate;

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

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

虽然我已经宣布它很弱!另外,如何将实现协议(protocol)的类传递给弱引用属性。我是否必须将它包装在那些奇怪的 obj_unretained 调用之一中?

如能提供任何帮助,我们将不胜感激。

最佳答案

“ivar”的意思是“实例变量”,您没有显示。我打赌它看起来像这样:

@interface Foo : NSObject {
id delegate;
}

@property (weak) id delegate;

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

@interface Foo : NSObject {
__weak id delegate;
}

@property (weak) id delegate;

如果该属性声称是弱的,则最终存储该值的 ivar 也必须是弱的。

关于iphone - 如何将委托(delegate)与自动引用计数一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6529191/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com