2

UIView をサブクラス化し、そのインスタンスを使用して UITableViewCell backgroundView および selectedBackedView プロパティを設定しています。UIView サブクラスの drawRect メソッドで EXC_BAD_ACCESS エラーが発生しました。

    if(nil == cell){

    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                 reuseIdentifier:CellIdentifier];
    cell.backgroundView = [[CCViewBackground alloc]init];
    cell.selectedBackgroundView = [[CCViewBackground alloc]init];

    }

UIView サブクラス CCBackgroundView -drawRect:

- (void)drawRect:(CGRect)rect
{
     // Drawing code
     CGContextRef context = UIGraphicsGetCurrentContext();

     CGColorRef redColor = 
     [UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1.0].CGColor;

     CGContextSetFillColorWithColor(context, redColor); //Receiving EXC_BAD_ACCESS here
     CGContextFillRect(context, self.bounds);

}
4

1 に答える 1

4

ARCを使用していると思います。その場合、CGColorRefが予想よりも早くリリースされるというよく知られた問題が発生しています。この記事では、この問題について詳しく説明し、いくつかの解決策を示します。

于 2012-09-02T17:02:27.303 に答える