gpt4 book ai didi

objective-c - 如何测试对象以查看它是否仍然可以接收消息以避免 EXC_BAD_ACCESS?

转载 作者:行者123 更新时间:2023-12-02 21:45:58 45 4
gpt4 key购买 nike

在 Objective C 中,测试对象是否在内存中的好方法是什么?

我一直在使用这样的代码:

if(myObject){
[myObject stop];
}

但尽管如此,我仍然在 myObject 上运行停止消息的行上不断收到 EXC_BAD_ACCESS 错误。

任何人都可以建议一种更好的方法来测试 myObject 是否仍然存在并且能够接收消息吗?

最佳答案

你不能用这种方式测试,因为你真正检查的是指针是否为零,而显然不是。

查看 ARC 的弱引用,一旦对象被释放,系统就会自动将其清零。

此外,在很多情况下,内存会被重用,您可能会遇到无法识别的选择器发送到实例异常,而不是错误的访问。在这种情况下,任何可能的 NSIPointerStillValidForSendingSelectors(myObject) 都会返回 YES,但它仍然不是您的对象。

关于objective-c - 如何测试对象以查看它是否仍然可以接收消息以避免 EXC_BAD_ACCESS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19512207/

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