-2

应用程序崩溃时,我在日志中收到以下消息

*** -[CFString release]: message sent to deallocated instance 0x1edf5720
[Switching to process 9223 thread 0x2407]
[Switching to process 9223 thread 0x2407]
[unknown][unknown][unknown][unknown][unknown][unknown][unknown][unknown][unknown][unknown](gdb)

我的问题很简单,我只想知道哪一个是deallocated instance 0x1edf5720。我只是想知道是否有任何工具或某种方法可以让我知道0x1edf5720指的是哪个对象或僵尸究竟在哪里创建。请注意,我不能使用模拟器进行测试。我必须在设备上测试它。

提前致谢。

4

2 回答 2

0

我认为您正在释放NSString而不分配它。

只有在分配值时才需要释放。

例如:

NSString * tempString=[[NSString alloc]init]; 

现在[tempString release];有效。

如果NSString * tempString=[NSString string];NSString * tempString=@"";

现在[tempString release];无效。

于 2013-05-29T05:21:37.133 回答
0

下面是崩溃应用程序的两个选项的一个原因。

1.你没有分配变量 ofNSString和你release它。

或者

2.您已经分配但具有autorelease如下属性..

   [[[NSString alloc] init] autorelease]; //Remove autorelease from here if you allocated with this keyword

使用NSZombieEnabled请参阅有关此链接的教程NSZombieEnabled-iPhone

于 2013-05-29T05:31:22.687 回答