我注意到实现NSURLSessionDataDelegate和启动任务偶尔会抛出一个EXC_BAD_ACCESS.给出错误的实际调用方法似乎有所不同,但总是来自CFNetwork.在大多数情况下,调用方法来自NSURLSession delegate_dataTask:didReceiveData:completionHandler.我在下面附上了两个不同来电的崩溃日志.我还附上了我的实施NSURLSessionDataDelegate.
不幸的是我无法可靠地重现错误,所以我没有一个示例脚本来共享.创建和启动Downloader对象最终会产生错误.对于较大的文件,它似乎经常发生.我在这里做错了吗?有没有一种好的方法从这个堆栈跟踪调试?
我已经在iOS10和10.1.1上测试了相同的结果.
执行:
class Downloader: NSObject, NSURLSessionDataDelegate {
private let url: String
var finished = false
let finishCondition = NSCondition()
init(url:String) {
self.url = url
super.init()
}
func start() {
let config = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: config,
delegate: self,
delegateQueue: nil)
guard let u = NSURL(string: url) else {
return
}
let request = NSMutableURLRequest(URL: u)
let task = session.dataTaskWithRequest(request)
task.resume()
}
func URLSession(session: NSURLSession, dataTask: …Run Code Online (Sandbox Code Playgroud) 我刚刚尝试使用Firebreath,并且已经关注了他们的Windows视频教程并遇到了错误:
使用Visual Studio 10检查工作的C编译器 - 已损坏
然后说:
它失败并显示以下输出:Change Dir:
然后列出驱动器.运行prep2010.cmd时会发生这种情况.我找到了一篇关于它的帖子,但论坛不会让我登录而且没有答案.它在这里:http://forum.firebreath.org/topic/274/?page = 1#post-1117并且完全相同的错误,我相信.最后一篇文章讨论了从vs2010命令shell中运行prep2010.那是什么意思?
有没有其他人有这个错误或知道它是如何造成的?我不知道如何处理它.
谢谢