good guy
good guy

Reputation: 569

iPhone: how to dealloc custom cell labels

hi i am working on UITableView custom cell for twitter, for each cell i am adding UIImageView(userPhoto), UILabel(name), UILabel(tweet), UILabel(Data), This i have to dealloc all elements,

please go through the attached Image of INSTRUMENT TOOL alloc screen shot

when i run the Instrument tool, it showing some are not dealloc, how to dealloc, this is my code

//Customize the appearance of table view cells. - (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;

}

please guide me Thank youThis image for instrument tools one

Upvotes: 1

Views: 1689

Answers (3)

iHS
iHS

Reputation: 5432

try using

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

[myImage setImage: [UIImage imageWithData:data]]; [data release]; data = nil;

In this case, we are manually releasing the memory allocated. I hope, this works

Upvotes: 1

phi
phi

Reputation: 10733

You'll have to send a release message to all the objects that you have allocated using init/alloc (name, date, tweetLabel, myImage) as soon as you're finished with them (for example, after addSubview). Note that according to the documentation, the view is retained by the receiver.

Upvotes: 1

iHS
iHS

Reputation: 5432

You can use

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

For other labels, you can probably use

 [date release]; [tweetLabel release]; [name release]; [myImage release];

Upvotes: 1

Related Questions