检测到iOS9堆缓冲区溢出 - CGContextSetFillColor

时间:2015-08-27 04:16:05

标签: ios drawrect buffer-overflow ios9 cgcontextref

我有一个自定义drawRect:function,我正在绘制上下文。在两个不同的点上,我一直在“检测到堆缓冲区溢出”。这两行代码是:

CGContextSetFillColor(context, CGColorGetComponents(self.myColor.CGColor));
CGContextSetStrokeColor(context, CGColorGetComponents(self.myColor.CGColor));

似乎任何时候CGContext方法引用颜色,都会检测到堆缓冲区溢出。我能够追踪到的奇怪之处在于正在使用的UIColor对象的类型。每当UIColor的类型为“UIDeviceWhiteColorSpace”时,就会发生这种崩溃。每当UIColor的类型为“UIDeviceRGBColorSpace”时,就不会发生这种崩溃。

产生“UIDeviceWhiteColorSpace”颜色类型的颜色示例如下:

[UIColor clearColor]
[UIColor whiteColor]
[UIColor lightGrayColor]

目前,我正在努力从HEX值生成“清晰”,“白色”和“浅灰色”颜色,我的HEX方法生成类型为“UIDeviceRGBColorSpace”的UIColor。

此代码在iOS7和iOS8上已经运行了一段时间了。

最终我的问题是:其他人是否经历过这种情况?还有其他已知的工作吗?我们可以期待这种情况继续进入iOS 9 GM吗?

0 个答案:

没有答案