Objective c 诊断错误:";释放发送到解除分配的对象”;

Objective c 诊断错误:";释放发送到解除分配的对象”;,objective-c,cocoa-touch,ios,cfstring,Objective C,Cocoa Touch,Ios,Cfstring,我收到了以下错误消息: message [CFString release] sent to deallocated object at 0x........ 消息[CFString release]已发送到0x处的解除分配对象。。。。。。。。 我如何知道是哪个字符串导致了此问题?我可以找出哪个CFString正在使用调试器吗?如果您使用的是XCode 4,请使用僵尸工具(构建和配置文件)。出现此消息时,您可以按箭头获取保留和释放字符串的所有位置的列表。如果您使用的是XCode 4,请使用僵尸工

我收到了以下错误消息:

message [CFString release] sent to deallocated object at 0x........ 消息[CFString release]已发送到0x处的解除分配对象。。。。。。。。
我如何知道是哪个字符串导致了此问题?我可以找出哪个
CFString
正在使用调试器吗?

如果您使用的是XCode 4,请使用僵尸工具(构建和配置文件)。出现此消息时,您可以按箭头获取保留和释放字符串的所有位置的列表。

如果您使用的是XCode 4,请使用僵尸工具(构建和配置文件)。出现此消息时,您可以按箭头以获取保留和释放字符串的所有位置的列表。

请参阅插入断点并查看堆栈以查找发生该字符串的释放语句

请参阅放入断点并回溯堆栈以查找发生断点的发布语句

首先,您可以尝试查找代码中的alloc/dealloc函数,并对其进行计数。
它的名称为“计数分配==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])进行调试

首先,您可以尝试查找代码中的alloc/dealoc函数,并对其进行计数。
它的名称为“计数分配==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])进行调试

不要使用保留计数进行调试。它并没有告诉您任何有用的信息:。您还可以在仪器中测试程序的内存泄漏,并查看从何处获得:)不要使用retain count进行调试。它不会告诉您任何有用的信息:。您还可以在仪器中测试您的程序,查找内存泄漏,并查看从何处获得它:)