Утечки на NSString, что appndformats - PullRequest
0 голосов
/ 24 августа 2011

У меня много утечек на NSString.Я использую appendformat для добавления к нему строк.

Вот код:

NSString *textedetails = [[NSMutableString alloc] init];
        if([dico objectForKey:@"alertSerie"] != nil)
            {[textedetails appendFormat:@"Numéro de Série: %@ \n",[dico objectForKey:@"alertSerie"]];}
        if([dico objectForKey:@"alertDate"] != nil)
            {[textedetails appendFormat:@"Date de mise en service: %@ \n",[dico objectForKey:@"alertDate"]];}
        if([dico objectForKey:@"alertCli"] != nil)
            {[textedetails appendFormat:@"Nom du client associé: %@ \n",[dico objectForKey:@"alertCli"]];}

... // Я помещаю текстовые детали в UITextField и ... [textedetails release];

Этот код дает мне утечки в первой и последней строке кода выше ...

, и экран печати утечек ЗДЕСЬ !!!

Большое спасибо, чтобы помочь мне !!!

Ответы [ 3 ]

2 голосов
/ 24 августа 2011
NSString *textedetails = [[NSMutableString alloc] init];
NSMutableString *texterecap = [[NSMutableString alloc] init];

и то, и другое никогда не освобождается.

Попробуйте это

NSString *textedetails = [[[NSMutableString alloc] init] autorelease];
NSMutableString *texterecap = [[[NSMutableString alloc] init] autorelease]; 

или это

NSMutableString *textedetails = [NSMutableString string];
NSMutableString *texterecap = [NSMutableString string];
1 голос
/ 24 августа 2011

Метод appendFormat напрямую не протекает.Это просто последующая ошибка, потому что экземпляр NSMutableString никогда не освобождается.

Я вижу два места, где вы создаете экземпляр NSMutableString с:

... = [[NSMutableString alloc] init];

Эти экземпляры должны быть освобожденыгде-то.

0 голосов
/ 24 августа 2011

Вы можете попытаться освободить переменные "textedetails" и "texterecap" сразу после того, как вы закончите их использовать.

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