Утечки памяти в Iphone - PullRequest
       1

Утечки памяти в Iphone

4 голосов
/ 19 ноября 2010
 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 байт утечки.

И некоторые другие утечки, также присутствующие в моем приложении, связанные с веб-набором и библиотекой 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 КБ, могу ли я оставить это в приложении или нет.

Ответы [ 3 ]

1 голос
/ 19 ноября 2010

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

0 голосов
/ 27 апреля 2019

Я заметил, что UIFont может вызвать утечку памяти при вызове не из основного потока. Поставьте утверждение перед вашим кодом. Это позволит вам поймать ошибку.

NSAssert([NSThread isMainThread]);
0 голосов
/ 19 ноября 2010

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

...