This question already has answers here:
Assigning an existing CGColor to a CGColor property works in iOS Simulator, not iOS device. Why?
(3个答案)
7年前关闭。
我将UIView子类化,并使用其实例设置UITableViewCell backgroundView和selectedBackedView属性。我的UIView子类的drawRect方法中收到EXC_BAD_ACCESS错误。
UIView子类CCBackgroundView -drawRect:
(3个答案)
7年前关闭。
我将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);
}
最佳答案
我假设您正在使用ARC。如果是这样,则您遇到了一个众所周知的问题,即CGColorRef
的发布早于您的预期。 This article详细解释了该问题,并提供了几种解决方案。
关于iphone - CGContextRef-EXC_BAD_ACCESS错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12237554/
10-11 14:49