我收到了以下错误消息:
message [CFString release] sent to deallocated object at 0x........
我怎么知道哪个字符串导致了这个问题?我可以找出使用调试器的CFString
吗?
答案 0 :(得分:3)
如果您使用的是XCode 4,请使用Zombie乐器(Build and Profile)。出现此消息时,您可以按箭头以获取保留和释放字符串的所有位置的列表。
答案 1 :(得分:1)
请参阅http://www.cocoadev.com/index.pl?NSZombieEnabled以放入断点并查看堆栈以查找发生的发布语句。
答案 2 :(得分:-1)
在第一步,您可以尝试查找您的代码以获取alloc / dealloc函数,并对其进行计数 它一直是“ count alloc == count dealloc ” 第二步,寻找一些结构:
NSString *myString = [NSString stringWith...]; // Auto alloc/init with content
[myString release]; // Release before use
NSLog(@"%@", myString); // Use after release
或尝试使用NSLog(%"retain count :%d", [myString retainCount]);