2

将我的项目从 Xcode 4.0 移动到 Xcode 4.3 后,我遇到了奇怪的调试错误。

该项目构建良好,没有错误,但是当我每次添加一些东西时,我都会在调试时遇到错误,我使用已释放的项目。

例如简单的行:

tableData=[[NSMutableArray] init];

给零庞特

tableData=0x0000

输出窗口中出现奇怪的错误:

*** -[__NSDate description]: message sent to deallocated instance 0x8382d30

在其他地方,它可能不是'__NSDate',而是'UITableView'、'NSString'等等。xCode 4.0 的同一个项目中的同一行没有错误,但 Xcode 4.3 出现问题。

怎么了?你能建议点什么吗。

4

2 回答 2

5

我的 xCode 刚刚安装。我已经解决了这个问题。

进入 xCode
产品 → 编辑方案... → 信息

选择任何其他调试器,问题就会消失。后来我玩了这个选项,问题再也没有回来。

我建议使用 GDB,因为 LLDB 在分配和初始化后有时仍会显示 0x00000 指针。

于 2012-02-22T09:52:08.900 回答
3

该行:

tableData=[[NSMutableArray] init];

是不正确的。正确的行是:

NSMutableArray *tableData = [[NSMutableArray alloc] init];

此外,您可以使用这些行来打印内存地址:

NSLog(@"%p", tableData); // print the tableData memory address

或查看调试器变量窗格。不要忘记释放内存:

[tableData release]; // release the memory
于 2012-02-21T19:02:31.000 回答