将项目从Xcode 4.0移动到Xcode 4.3后,我遇到了奇怪的调试错误。
项目构建良好,没有错误,但是当我每次都添加一些东西时,我会使用解除分配的项目来调试错误。
例如简单的行:
tableData=[[NSMutableArray] init];
给出nil ponter
tableData=0x0000
输出窗口中的奇怪错误:
*** -[__NSDate description]: message sent to deallocated instance 0x8382d30
在其他地方,它可能不是'__NSDate',而是'UITableView','NSString'等等。 使用xCode 4.0的同一项目中的同一行不会出现错误,但会出现Xcode 4.3问题。
有什么问题?你能提出一些建议吗?
答案 0 :(得分:5)
我的xCode刚刚安装完毕。 我已经解决了这个问题。
进入xCode
产品→编辑方案...→信息
选择任何其他调试器并且问题消失。后来我玩这个选项,问题永远不会回来。
我建议使用GDB,因为LLDB有时在分配和初始化后仍会显示0x00000指针。
答案 1 :(得分:3)
该行:
tableData=[[NSMutableArray] init];
不正确。正确的行是:
NSMutableArray *tableData = [[NSMutableArray alloc] init];
此外,您可以使用这些行打印内存地址:
NSLog(@"%p", tableData); // print the tableData memory address
或查看调试器变量窗格。别忘了释放内存:
[tableData release]; // release the memory