我得到这个错误有人知道吗??? 2009-07-08 18:42:36.778 FlashCards [1297:20b]类别Id = 1 FlashCards(1297,0xa0690fa0)malloc: *对象0x4fd78a0的错误:释放的指针未分配 对象0x4fdc200的FlashCards(1297,0xa0690fa0)malloc:* 错误:双倍免费 ***在malloc_error_break中设置断点以进行调试
答案 0 :(得分:16)
不,NSInteger
不是对象;它只是int
(对于32位应用程序)或long
(对于64位应用程序)的typedef:
#if __LP64__
typedef long NSInteger;
#else
typedef int NSInteger;
endif
答案 1 :(得分:3)
NSInteger是基本类型的typedef,它不是可以响应retain或release等方法的对象。尽管它的命名类似于像NSNumber或NSValue这样的Cocoa类,但实际上它的处理方式与int,float等相同。
答案 2 :(得分:0)
错误消息为您提供了如何调试此问题的良好提示:在malloc_error_break处设置断点。在Xcode中,打开断点窗口(选项-cmd-B)。在显示“双击符号”的字段中,输入malloc_error_break
。在调试器中重新运行您的应用程序(从“运行”菜单中选择“调试”)。调试器将在您报告的错误点停止。我会检查那一点的堆栈跟踪,找到你已经加倍释放这段记忆的地方。