iPhone: как избавиться от пользовательских ярлыков - PullRequest
1 голос
/ 02 февраля 2011

привет, я работаю над пользовательской ячейкой UITableView для твиттера, для каждой ячейки я добавляю UIImageView (userPhoto), UILabel (имя), UILabel (твит), UILabel (данные), это мне нужно удалить все элементы,

пожалуйста, пройдите через прикрепленный снимок экрана INSTRUMENT TOOL alloc

, когда я запускаю инструмент Instrument, он показывает, что некоторые не имеют значения, как считать, это мой код

// Настройка внешнего вида ячеек табличного представления.- (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath {

 static NSString *identifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];


if(!cell) {

    cell = [[UITableViewCell alloc] initWithStyle:UITableViewStyleGrouped reuseIdentifier:nil];

    //cell.selectionStyle = UITableViewCellSelectionStyleNone;

UILabel *name  = [[UILabel alloc]initWithFrame:CGRectMake(72,3,242,15)] ;
name.text   = (NSString*)[(Tweet*)[tweetArray objectAtIndex:indexPath.row] userName];
[name setFont:[UIFont fontWithName:@"Helvetica" size:13]];
name.textColor=[UIColor colorWithRed:250 green:250 blue:210 alpha:0.5];
[name setBackgroundColor:[UIColor clearColor]];



UILabel *date  = [[[UILabel alloc]initWithFrame:CGRectMake(200,3,130,15)] autorelease];
date.text   = (NSString*)[(Tweet*)[tweetArray objectAtIndex:indexPath.row] created_at];
[date setFont:[UIFont fontWithName:@"Helvetica" size:12]];
date.textColor=[UIColor colorWithRed:250 green:250 blue:210 alpha:0.5];
[date setBackgroundColor:[UIColor clearColor]];



UILabel * tweetLabel  = [[UILabel alloc]initWithFrame:CGRectMake(72,20,242,60)] ;
tweetLabel.text   = (NSString*)[(Tweet*)[tweetArray objectAtIndex:indexPath.row] tweet];
tweetLabel.numberOfLines = 3;
tweetLabel.textColor=[UIColor colorWithRed:252 green:148 blue:31 alpha:1];
[tweetLabel setFont:[UIFont fontWithName:@"Helvetica" size:12]];
[tweetLabel setBackgroundColor:[UIColor clearColor]];

UIImageView *myImage = [[UIImageView alloc]initWithFrame:CGRectMake(6,10,58,60)] ;
NSURL *url = [NSURL URLWithString:[(Tweet*)[tweetArray objectAtIndex:indexPath.row] image_url]];
NSData *data = [NSData dataWithContentsOfURL:url];
[myImage setImage: [UIImage imageWithData:data]];

[cell.contentView addSubview:myImage];
[cell.contentView addSubview:tweetLabel];
[cell.contentView addSubview:name];
[cell.contentView addSubview:date];

[myTweetActivityIndicator stopAnimating];[myTweetActivityIndicator setHidesWhenStopped: YES];

return cell;

}

, пожалуйста, помогите мне Спасибо This image for instrument tools one

Ответы [ 3 ]

1 голос
/ 02 февраля 2011

Вы должны будете отправить сообщение release всем объектам, которые были выделены с помощью init / alloc (имя, дата, tweetLabel, myImage), как только вы закончите с ними Например, после addSubview). Обратите внимание, что в соответствии с документацией вид сохраняется получателем.

1 голос
/ 02 февраля 2011

попробуйте использовать

NSData *data = [[NSData alloc] initWithContentsOfURL:url];

[myImage setImage: [UIImage imageWithData: data]];[выпуск данных];data = nil;

В этом случае мы вручную высвобождаем выделенную память.Я надеюсь, это работает

1 голос
/ 02 февраля 2011

Вы можете использовать

cell = [[[UITableViewCell alloc] initWithStyle:UITableViewStyleGrouped reuseIdentifier:nil] autorelease];

Для других ярлыков вы, вероятно, можете использовать

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