gpt4 book ai didi

iphone - 错误的委托(delegate)声明

转载 作者:行者123 更新时间:2023-11-29 04:08:41 26 4
gpt4 key购买 nike

假设我有一个 ClassA 类

标题:

@interface ClassA : NSObject
- (id)initWithDelegate:(id)delegate;
@end

实现:

@interface ClassA ()
{
NSObject *_delegate;
}
@end

@implementation
- (id)initWithDelegate:(id)delegate
{
self = [super init];
if( self )
{
_delegate = delegate;
}

return self;
}
@end

由于我跳过了 @property 定义,我的委托(delegate)声明默认为强?所以这段代码是错误的,因为它会导致泄漏,或者我的延迟声明默认为弱?

最佳答案

您必须将该 ivar 限定为 __weak。 ivar 的默认值是强的。

否则,正如您所知,您将面临与委托(delegate)发生保留周期的风险。

顺便说一句,这里的约定是“id”而不是 NSObject *。

关于iphone - 错误的委托(delegate)声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14771041/

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