У меня проблемы с приложением, которое периодически прерывается. Код ниже находится в UIView с CATiledLayer в качестве заднего слоя:
- (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 не может быть виноват?