2010-11-19 5 views
3
label = (UILabel *)[cell.contentView viewWithTag:1]; 
      label.text =labelString; 
      size = [label.text sizeWithFont:[UIFont fontWithName:@"ArialMT" size:14] constrainedToSize:CGSizeMake(320,9999) lineBreakMode:UILineBreakModeWordWrap]; 
      label.frame = CGRectMake(5, 5, 295, (size.height+25)); 

UIFont оставить 256 байтов утечки.Утечки памяти в Iphone

И некоторые другие утечки, также присутствующие в моем приложении, связанные с веб-комплектом и библиотекой Foundation.

NSString *path = [[NSBundle mainBundle] pathForResource:@"Prayers" ofType:@"html"]; 
    NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:path]; 

    NSString *htmlString = [[NSString alloc] initWithData: 
          [readHandle readDataToEndOfFile] encoding:NSUTF8StringEncoding]; 

Эти строки оставляют утечки UIKit WebKit и DataDetectorsCore.

Пожалуйста, предложите любое решение проблемы. Общая пропущенная память составляет около 3 КБ, может ли я оставить это в приложении или нет.

+1

В большой схеме вещей, 3KB не очень много ... Я разработчик iPhone для новичков, но с помощью Appcelerator я обычно получаю 40+ МБ памяти (ошибка в их рамках), и приложение будет работать штраф (через какое-то время произойдет сбой на старых устройствах). После этого опыта я переключился на ObjC, потому что я предпочел бы отслеживать утечку памяти, чем чей-то ... В любом случае, вы, вероятно, хотите получить более экспертное мнение, но я не думаю, что 3KB особенно плохо ... –

+1

Утечка памяти IMO aren Это так плохо, если они не растут со временем, забывая выпустить несколько объектов здесь, и там не будет убивать приложение, но с утечками памяти, которые со временем увеличиваются. Поэтому, если его постоянная 3 КБ, независимо от того, как долго работает приложение, вы можете игнорировать ее (это говорит о том, что лично я никогда не отправляю вещи с утечками памяти из профессиональной гордости), иногда, хотя memleaks являются симптомом чего-то еще, поэтому его всегда полезно исследовать , –

ответ

0

Утечка UIFont, о которой вы упомянули, может вообще не быть утечкой. Возможность, что UIFont не была выпущена, - это внутреннее кэширование UIFont при использовании метода fontWithName.

+0

Утечка определяется, когда нет обнаруженных ссылок на выделенный объект. Если бы он был кэширован, была бы ссылка на него, и детектор утечки не считал бы его утечкой. – dreamlax

+2

Не совсем; существует множество игр, которые можно играть, чтобы скрыть указатель от обнаружения механизмом анализа утечек. Ложные срабатывания встречаются редко, но это происходит. Ложные негативы, с другой стороны, или общие. – bbum

1

Уверен, что у вас есть утечка в экземплярах UITableViewCell. Вы сделали некоторые пользовательские UITableViewCells, возможно, вам нужно проверить эти UITableViewCells.

+0

Я проверил прибор, когда он показывает эту утечку и несколько раз не, но это определенно бросает UIFont. И еще одна утечка, присутствующая здесь, представляет собой веб-представление (веб-набор). Я упоминаю выше код. Предлагайте некоторое решение. Thanx для вашей поддержки. – Ishu

Смежные вопросы