Странная утечка при использовании [NSStringObject UTF8String] - PullRequest
1 голос
/ 22 марта 2009

У меня есть эта функция:

-(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 (): объект 0x10a290 класса NSCFData автоматически освобожден без пула на месте - только утечка Стек: (0x9234c73f 0x92258e32 0x9226d505 0x9226d0e1 0x2406 0x22ce 0x20be) имя: имя

Что странно, так это то, что когда я делаю [_name cString], он отлично работает.

Ответы [ 2 ]

2 голосов
/ 22 марта 2009

Поток, в котором вы вызываете этот метод, не имеет NSAutoreleasePool, поэтому у автоматически выпущенных объектов нет пула. Вы должны установить NSAutoreleasePool для каждого потока. Вступление к документации NSAutoreleasePool объясняет эту идею более подробно.

0 голосов
/ 22 марта 2009

Ой - я помещал все в debugPrint в main () перед вызовом «return NSApplicationMain (argc, (const char **) argv);». Это вызывало проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...