我已经构建了一个自定义的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)
我真的很喜欢这个。有没有人知道可能导致这种情况的原因,以及如何解决这个问题?
谢谢!
萨姆
答案 0 :(得分:0)
我没有足够的上下文来完全理解这里的代码,更不用说猜测什么是错的了,但基本上发生的事情是有一个已经解除分配的锁(互斥锁),但仍然在NSURL *的某个地方使用叠加。
这可能意味着某些事情没有得到妥善保留,但任何人都猜测是什么或在哪里。甚至可能是您的协议没有得到正确保留,在这种情况下,您可以通过将协议对象分配给自身的属性来修复它,直到您调用最后一个委托方法,然后将其归零。
话虽如此,有理由相信这是操作系统本身的一个错误,所以当你试图解决它时,你也应该提交一个错误。它会被其他人在这里和Apple开发者论坛上提出同样问题的其他人所欺骗。 : - )