インターフェイス ビルダーを使用して設計したテーブル ビューのカスタム セルがあります。その .m ファイルには、カスタム セルのバンドルから xib を取得するための次のようなコードがあります。
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
NSArray *nibArray = [[NSBundle mainBundle] loadNibNamed:@"SubItemsCustomCell" owner:self options:nil];
self = [nibArray objectAtIndex:0]; }
return self;
}
次に、このセルを cellForRowAtIndexPath メソッドで使用して自動解放メッセージを渡すと、
if (!cellForSubItems) {
cellForSubItems = [[[SubItemsCustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"SubItemCell"] autorelease];
}
メッセージを表示してtableViewをスクロールするとクラッシュします。
-[SubItemsCustomCell release]: message sent to deallocated instance 0xed198b0
コードを使用してカスタム セルを作成したときにクラッシュすることはありませんでしたが、ここではクラッシュします。なぜですか?? また、自動解放しないと、まったく問題なく動作しますが、明らかにメモリリークが発生します。親切にこれで私を助けてください。前もって感謝します。
編集:私はARCを使用していません。