gpt4 book ai didi

objective-c - 在向对象发送消息之前检查对象是否已被释放

转载 作者:太空狗 更新时间:2023-10-30 03:46:28 25 4
gpt4 key购买 nike

我最近才注意到当一个对象试图向其委托(delegate)发送消息并且该委托(delegate)已被释放时,我的一个应用程序发生了崩溃。

目前,就在调用任何委托(delegate)方法之前,我运行此检查:

if (delegate && [delegate respondsToSelector:...]){
[delegate ...];
}

但显然,如果委托(delegate)不是 nil,而是已被释放,这并不能说明这一点。

除了在委托(delegate)的 dealloc 方法中将对象的委托(delegate)设置为 nil 之外,有没有办法检查委托(delegate)是否已经被释放,以防我不再有对该对象的引用。

最佳答案

没有。无法判断变量是否指向有效对象。您需要构建您的程序,以便该对象的委托(delegate)不会在没有事先通知的情况下消失。

关于objective-c - 在向对象发送消息之前检查对象是否已被释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2954261/

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