菜鸟教程小白 发表于 2022-12-12 19:31:47

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]
查看完整版本: iphone - CATitledLayer 的间歇性 EXC_BAD_ACCESS 异常