утечка памяти в iphone / ipad из NSString - PullRequest
1 голос
/ 17 сентября 2010

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

Задача № 1:

self.wallText = [[text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]];

Я пробовал различные конфигурации вышеупомянутой линии, но все утечки. Мне нужно сделать обе эти операции обрезки. 'text' объявляется либо с @ "", либо с stringWithFormat.

Моя другая проблема связана со следующей строкой:

    NSString * value = [elements objectAtIndex:i+1];
if ([value length] >= 2 && [[value substringToIndex:2] isEqualToString:@"S_"]){
   value = [value substringFromIndex:2]; // LEAK HERE
    }

Мне нужно получить всю строку за исключением первых 2 символов, поэтому я не знаю, как я мог бы выпустить ее первым или что-то ... если это действительно то, что я должен делать.

Я мог бы избежать утечек раньше с предыдущими проектами, но этот очень требователен к памяти, и мне нужна вся память, которую я могу получить!

Любые указатели будут с благодарностью

Ответы [ 2 ]

3 голосов
/ 17 сентября 2010

Вы объявили @property (retain) для wallText, сделали ли вы [wallText release] в методе dealloc?

Двойная проверка вышеупомянутых вещей, и у вас больше не будет утечек

ДляОбновленная часть:

Странно, что у вас там утечка памяти.Потому что сначала ваш value указывает на объект autoreleased, затем он указывает на другой объект autoreleased, что, на мой взгляд, хорошо.

0 голосов
/ 17 сентября 2010

вы должны использовать alloc для значения. value = [value substringFromIndex:2];. Здесь теперь значение ссылается на новую строку автоматического выпуска. так что вы не можете освободить предыдущий объект.

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