NSURLProtocol中的0_ os_lock_corruption_abort

时间:2016-05-07 16:45:38

标签: ios nsurlsession nsurlprotocol

我已经构建了一个自定义的NSURLProtocol,它在浏览时由WebView使用。但是在看似随机的时间(浏览20秒或几分钟之间)我得到一个EXC_BREAKPOINT并且应用程序停止在我的NSURLProtocol中运行。

我的NSURLProtocol的相关部分如下,它是显示EXC_BREAKPOINT的最后一行

self.mutableData = NSMutableData(data: data!)  
self.response = response  
self.client?.URLProtocol(self, didReceiveResponse: response!, cacheStoragePolicy: NSURLCacheStoragePolicy.Allowed)  
self.client?.URLProtocol(self, didLoadData: data!)  
self.client?.URLProtocolDidFinishLoading(self)

Xcode错误如下所示: enter image description here

我真的很喜欢这个。有没有人知道可能导致这种情况的原因,以及如何解决这个问题?

谢谢!

萨姆

1 个答案:

答案 0 :(得分:0)

我没有足够的上下文来完全理解这里的代码,更不用说猜测什么是错的了,但基本上发生的事情是有一个已经解除分配的锁(互斥锁),但仍然在NSURL *的某个地方使用叠加。

这可能意味着某些事情没有得到妥善保留,但任何人都猜测是什么或在哪里。甚至可能是您的协议没有得到正确保留,在这种情况下,您可以通过将协议对象分配给自身的属性来修复它,直到您调用最后一个委托方法,然后将其归零。

话虽如此,有理由相信这是操作系统本身的一个错误,所以当你试图解决它时,你也应该提交一个错误。它会被其他人在这里和Apple开发者论坛上提出同样问题的其他人所欺骗。 : - )