断続的にクラッシュし続けるアプリで問題が発生しています。以下のコードは、CATiledLayer をバッキング レイヤーとして使用する UIView 内にあります。
- (UIBezierPath *)path
{
if(_path == nil){
_path = [UIBezierPath bezierPath];
CGFloat lineWidth = 5;
[_path setLineWidth:lineWidth];
[_path setLineJoinStyle:kCGLineJoinRound];
[_path setLineCapStyle:kCGLineCapRound];
[_path moveToPoint:CGPointMake(100, 100)];
[_path addLineToPoint:CGPointMake(200,200)];
[_path addLineToPoint:CGPointMake(150,200)];
[_path addLineToPoint:CGPointMake(50,400)];
_path closePath];
return _path;
}
return _path;
}
- (void)drawRect:(CGRect)rect
{
[[UIColor colorWithRed:0.1 green:0.1 blue:1 alpha:0.45] setStroke];//sets stroke color in current context
[self.path stroke];
}
次のエラー コードが表示されます。
Single stepping until exit from function _ZN2CG4Path15apply_transformERK17CGAffineTransform, which has no line number information.
エラーが発生するパターンはないようです。スクロールやズームを行うと、ある時点で発生するようです。ズーム/スクロールするとすぐにクラッシュすることがあります。時々、クラッシュするまでしばらくズームしたりスクロールしたりできます。
iOS4 より前は、UIKit はスレッドセーフではなく、CATiledLayers では使用できませんでした。テクニカル ノートを参照してください私の問題 (だと思います) は、スレッドの問題のようです。確かに UIKit のせいではありませんか?