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

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

概述我最近才注意到,当一个对象尝试向其委托发送消息并且该委托已经被释放时,我的一个应用程序崩溃了. 目前,在调用任何委托方法之前,我运行此检查: if (delegate && [delegate respondsToSelector:...]){ [delegate ...];} 但显然这并不能说明代表是否为零,但已被解除分配. 除了在委托的dealloc方法中将对象的委托设置为nil之外, @H_403_0@ @H_403_0@ 我最近才注意到,当一个对象尝试向其委托发送消息并且该委托已经被释放时,我的一个应用程序崩溃了.

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

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

但显然这并不能说明代表是否为零,但已被解除分配.

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

解决方法 不可以.无法判断变量是否指向有效对象.你需要构建你的程序,这样这个对象的委托就不会在不先让它知道的情况下消失. @H_403_0@ 总结

以上是内存溢出为你收集整理的objective-c – 在向对象发送消息之前检查对象是否已被释放全部内容,希望文章能够帮你解决objective-c – 在向对象发送消息之前检查对象是否已被释放所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1016278.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存