Objective-C:使用 isa 属性来确定变量是否已被释放

标签 objective-c ios

我遇到一个问题,变量被随机释放或损坏,我得到一个 NSInvalidArgumentException。它并不总是发生,但我能够在几次尝试后重现该问题。

我尝试了几种方法来检查该属性的类型是否正确,但没有成功。

这是一切正常时的变量 Here is the variable when everything is working

这是应用程序崩溃时的变量 Here is the variable when the app crashes

我注意到“isa = (Class)”部分现在返回错误而不是“CLLocation”,所以我试图检查它但它受到保护。

[fromPoint->isa isKindOfClass:[CLLocation class]]

我已经尝试了这里的答案,但我仍然遇到异常。

Objective c isKindOfClass missunderstanding?

isa pointer in objective-c

谢谢!

最佳答案

看起来您有对已释放对象的引用。尝试使用 NSZombieEnabled=YES 运行调试器。通过打开 Product>Edit Scheme... 并在运行配置的“环境变量”中添加一行来进行设置。

关于Objective-C:使用 isa 属性来确定变量是否已被释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12824119/

相关文章:

iphone - 如何在 map 注释 View 中找出引脚 ID?

ios - UIView clearColor 的问题

ios - 在 Objective C 中将 Hex NSData 转换为 int

ios8扩展和容器应用如何共享数据

ios - 如何在两个警报的显示之间暂停代码

objective-c - 通过寻找图像中的相似性将图像拼接在一起?

ios - iPhone编程中用于登录应用的Post方法

ios - UITableView 不显示

objective-c - 用于自动续订订阅的 MKStoreKit 4.0

ios - Testflight 测试人员获得 "unable to download app could not be installed at this time"