1
私はtmpに@がすでにリリースされ@ ---」次にiPhoneがリリースされたオブジェクト&を覚えてどのように、我々はテキストを設定することができ、ここでタグはリリースされたオブジェクトをどのように覚えていますか? iPhone
-(UITableViewCell*)getCellContentView:(NSString*)cellIdentifier
{
CGRect photoFrame=CGRectMake(10, 10, 60, 60);
CGRect label1Frame=CGRectMake(85, 9, 200, 32);
CGRect label2Frame=CGRectMake(85, 38, 200, 25);
CGRect labelBgFrame=CGRectMake(0, 0, 320, 80);
UITableViewCell *cell=[[[UITableViewCell alloc] initWithFrame:CGRectMake(0, 0, 300, 80) reuseIdentifier:cellIdentifier] autorelease];
UILabel *tmp;
tmp=[[UILabel alloc] initWithFrame:label1Frame];
tmp.tag=1;
tmp.textColor=[UIColor blackColor];
tmp.font=[UIFont boldSystemFontOfSize:18];
tmp.backgroundColor=[UIColor clearColor];
[cell.contentView addSubview:tmp];
[tmp release];
}
以下に示すカスタマイズされたのUITableViewCell、 を作成するために、別の方法を持っていますそのラベル
あなたは正しい、アレックス。 cell.contentViewには保持されたポインタがあるため、tmpオブジェクトはまだ解放されていません。 sagarの場合、保持カウントを確認するには、NSLog(@ "retainCount is now dd"、[tmp retainCount])行を追加します。あなたのコードのいくつかの場所で。あなたはそれが1から2になり、最後に1に戻ることを見るでしょう - 決して0ではなく、実際にそれをリリースします。 – Tyler
タイラー、フィードバックに感謝します。 – Alex