我收到此错误,通常是当我长时间按下uitextfield并出现放大镜时 同时报告了许多此类错误
e.g。 :CGContextSetStrokeColorWithColor:无效的上下文0x0。这是一个严重的错误。该应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性的整体降低。此通知是礼貌的:请解决此问题。在即将到来的更新中,它将成为一个致命的错误。
我唯一的绘图代码如下
此代码有什么问题
- (void)drawRect:(CGRect)rect
{
// Drawing code
CGContextRef context = UIGraphicsGetCurrentContext(); //context
CGContextBeginPath (context);
CGContextSetLineWidth(context,3);
CGPoint center = CGPointMake(rect.size.width / 2, rect.size.height / 2);//get the view centre
//get the polygon points
CGContextMoveToPoint(context, center.x-70,rect.size.height - 140 );
CGContextAddLineToPoint(context, center.x + 130, rect.size.height - 140);
CGContextAddLineToPoint(context, center.x - 70, 100);
CGContextAddLineToPoint(context, center.x- 70, rect.size.height - 140);
CGContextAddLineToPoint(context, center.x - 50, rect.size.height -140);
CGContextAddLineToPoint(context, center.x - 50, rect.size.height - 160);
CGContextAddLineToPoint(context, center.x - 70, rect.size.height - 160);
CGContextClosePath(context);//close the path
//[[UIColor clearColor] setFill];//set the colour for fill
[[UIColor blackColor] setStroke];//set the line color
CGContextDrawPath (context, kCGPathStroke);//draw
}
答案 0 :(得分:1)
您是那个调用drawRect:
方法的人吗?您不应该这样做,您应该致电setNeedsDisplay
,应用程序将在适当的时候致电drawRect:
。
如果您自己调用drawRect:
方法,则不会将CGContext推送到上下文堆栈,因此UIGraphicsGetCurrentContext()
将返回nil
,您将收到错误信息'重看。