iphone: большое потребление памяти и утечка при просмотре таблицы - PullRequest
0 голосов
/ 04 июня 2011

Я готовлю такие ячейки 1) Создал пользовательскую ячейку с Xib 2) поскольку я должен изменить содержимое меток в пользовательской ячейке, соответствующее значениям, считанным из базы данных. Я не могу повторно использовать тот же cellIdentifier

static NSString *MyIdentifier = @"MyIdentifier";
MyIdentifier = [NSString stringWithFormat:@"Cell %d",indexPath.row];

NSString *offendersImagePath = [self applicationDocumentsDirectory];

offendersImagePath=[offendersImagePath stringByAppendingPathComponent:@"Images"];


CustomOffendersCell *cell = (CustomOffendersCell *)[tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if(cell == nil) {
    [[NSBundle mainBundle] loadNibNamed:@"CustomOffendersCell" owner:self options:nil];
    cell = aCustomOffendersCell;
    aCustomOffendersCell=nil;
}
    NSMutableArray *tempArray;//=[[NSMutableDictionary alloc] init];

tempArray=[offendersNamesList objectAtIndex:indexPath.row];

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

[[NSBundle mainBundle] loadNibNamed:@"CustomOffendersCell" owner:self options:nil];

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

Ответы [ 2 ]

2 голосов
/ 04 июня 2011

Вы должны вызывать метод "release" для ячейки, такой как "[aCustomOffendersCell release]". Также вам нужно освободить все данные, которые вы разместили в ячейке, такие как UILabel, UIImageView и т. Д. Итак, когда вы поместите их в ячейку, затем освободите все эти данные.

Надеюсь, это поможет вам. И дайте мне знать для более подробной информации.

1 голос
/ 04 июня 2011

Вы должны вызвать autorelease на aCustomOffendersCell вместо того, чтобы просто назначить nil.

aCustomOffendersCell nil;

Используйте ниже

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