次のように、各カスタムセルにサブビューとして追加する UIButton とともに、テーブルビューを使用するアプリがあります。
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
checkButton = [[UIButton buttonWithType:UIButtonTypeCustom] initWithFrame:CGRectMake(2.0, 2.0, 40.0, 40.0)];
[cell.contentView addSubview:checkButton];
// lot's of other code
return cell;
}
Instrumentsを使用してメモリリークがないことを確認するまでは問題ないと思っていましたが、UIButtonをセルのサブビューとして追加すると、何らかの形でUIKit内でリークが発生することがわかりました。
具体的には、セル行ごとに (ボタンがサブビューとして追加されるたびに) メモリリークが発生し、リークされたオブジェクトは「-[UIView _createLayerWithFrame:]」である責任フレームを持つ「CALayer」です。
ここで何か間違ったことをしていますか?