使用[NSStringObject UTF8String]时出现奇怪的泄漏

时间:2009-03-21 22:06:06

标签: objective-c

我有这个功能:

-(void) debugPrint
{
    printf("name: %s", [_name UTF8String]);
}

这会导致运行时错误:

[会议开始于2009-03-21 15:02:26 -0700。] 2009-03-21 15:02:26.319 TGui [20063:10b] *** _NSAutoreleaseNoPool():类NSCFData的对象0x10a290自动释放,没有池到位 - 只是泄漏 堆栈:(0x9234c73f 0x92258e32 0x9226d505 0x9226d0e1 0x2406 0x22ce 0x20be) 名称:名称

奇怪的是,当我做[_name cString]时,它运行正常。

2 个答案:

答案 0 :(得分:2)

您调用该方法的线程没有NSAutoreleasePool,因此自动释放的对象没有池。您必须为每个线程设置NSAutoreleasePoolNSAutoreleasePool文档的介绍更详细地解释了这个想法。

答案 1 :(得分:0)

哎呀 - 在调用“返回NSApplicationMain(argc,(const char **)argv);”之前,我把所有调试都放在main()中。这导致了问题。