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

时间:2012-10-10 16:28:51

标签: 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

谢谢!

1 个答案:

答案 0 :(得分:6)

看起来你有对已释放对象的引用。尝试使用NSZombieEnabled=YES运行调试器。通过打开产品>编辑方案... 并在运行配置的“环境变量”中添加一行来设置此项。