コンテキストに描画するカスタム drawRect: 関数があります。2 つの異なる時点で、「ヒープ バッファ オーバーフローが検出されました」というメッセージが表示されました。コードの 2 行は次のとおりです。
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 に続くことを期待できますか?