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 回答