0

我正在尝试检查 NSZombieEnabled 是否在我的代码中工作。我有以下设置:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

我有以下代码didFinishLaunchingWithOptions

NSString *string = nil;
    [string release];
    string = @"abc";

但是,没有产生错误。NSZombie 也没有通知。我应该做更多的设置。请帮助我,因为我已经导入了一个库,并且发生了代码 13 的 EXC_BAD_ACCESS,我无法找到错误原因。

堆栈和控制台看起来像这样 在此处输入图像描述

4

1 回答 1

2

您的设置是正确的,但您的代码不会创建任何僵尸。僵尸是一个已被释放但被重新使用的对象。这样的事情会创建一个僵尸:

NSString* string = [NSString stringWithString:@"abc"];
[string release];
[string length];

在此示例中,字符串被释放,然后您尝试通过调用其length方法来使用它。

就您的库而言,当它为您提供 EXC_BAD_ACCESS 时,堆栈是什么样的?

于 2012-11-30T05:50:06.240 回答