gpt4 book ai didi

iphone - CATitledLayer 的间歇性 EXC_BAD_ACCESS 异常

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:50:36 25 4
gpt4 key购买 nike

我遇到了一些间歇性崩溃的应用程序问题。下面的代码位于以 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 一起使用。参见 tech note我的问题(我认为)似乎是线程问题。肯定不能怪 UIKit 吧?

最佳答案

尝试使 path 属性成为 atomic

此外,您可能应该将 drawRect 修改为以下内容:

- (void)drawRect:(CGRect)rect
{
[[UIColor colorWithRed:0.1 green:0.1 blue:1 alpha:0.45] setStroke];//sets stroke color in current context
@synchronized(self) {
[self.path stroke];
}
}

关于iphone - CATitledLayer 的间歇性 EXC_BAD_ACCESS 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9423079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com