gpt4 book ai didi

ios - Objective C 中的 Nil 委托(delegate)

转载 作者:行者123 更新时间:2023-12-01 17:17:30 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Setting delegate to nil in dealloc

(1 个回答)


9年前关闭。




我读到您应该在 dealloc 中将委托(delegate)设置为 nil .我注意到它在 init 中执行此操作,这样可以吗?或者你应该在 dealloc 中做同样的事情吗? ?

“这是一种微妙但方便的方法。如果您将自己作为委托(delegate)传递给另一个对象,请在解除分配之前重置该对象的委托(delegate)。”

文件.h

@interface TestService : NSObject
{
NSObject <TestServiceDelegate> *m_delegate;
}

@property (nonatomic, assign) NSObject <TestServiceDelegate> *delegate;

文件.m
 @synthesize delegate=m_delegate;

- (id)init
{
if (self = [super init])
{
m_delegate = nil;
}

return self;
}

- (void)dealloc

{
[super dealloc];
}

最佳答案

两者都不需要。

init 的情况下方法,实例变量将从 nil 开始,所以没关系。

dealloc 的情况下,因为您的委托(delegate)实例变量是(我在这里猜测,但如果不是,它应该!)设置为 weak (ARC) 或 assign (非 ARC)属性,一旦您释放对象,将不会向委托(delegate)发送任何内容。

关于ios - Objective C 中的 Nil 委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14941393/

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