iphone - CATitledLayer 的间歇性 EXC_BAD_ACCESS 异常
<p><p>我遇到了一个应用程序时常崩溃的问题。下面的代码在 UIView 中,以 CATiledLayer 作为其支持层:</p>
<pre><code>- (UIBezierPath *)path
{
if(_path == nil){
_path = ;
CGFloat lineWidth = 5;
;
;
;
;
;
;
;
_path closePath];
return _path;
}
return _path;
}
- (void)drawRect:(CGRect)rect
{
[ setStroke];//sets stroke color in current context
;
}
</code></pre>
<p>我收到以下错误代码:</p>
<pre><code>Single stepping until exit from function _ZN2CG4Path15apply_transformERK17CGAffineTransform, which has no line number information.
</code></pre>
<p>发生错误时似乎没有任何规律。它似乎会在某些时候发生滚动或缩放。有时,一旦我缩放/滚动,就会崩溃。有时我可以缩放和滚动一段时间,直到它崩溃。</p>
<p>我知道在 iOS4 之前 UIKit 不是线程安全的,不能与 CATiledLayers 一起使用。见 <a href="https://developer.apple.com/library/ios/#qa/qa1637/_index.html" rel="noreferrer noopener nofollow">tech note</a>我的问题(我认为)似乎是线程问题。肯定不能怪 UIKit 吗?</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>尝试将 <code>path</code> 属性设为 <code>atomic</code>。</p>
<p>另外,您可能应该将 <code>drawRect</code> 修改为以下内容:</p>
<pre><code>- (void)drawRect:(CGRect)rect
{
[ setStroke];//sets stroke color in current context
@synchronized(self) {
;
}
}
</code></pre></p>
<p style="font-size: 20px;">关于iphone - CATitledLayer 的间歇性 EXC_BAD_ACCESS 异常,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/9423079/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/9423079/
</a>
</p>
页:
[1]