0

当我尝试使用以这种方式创建的后台会话提交下载 URL 时:

func backgroundSession() -> NSURLSession?{
    var session:NSURLSession?;
    var configuration:NSURLSessionConfiguration!;
    if NSURLSessionConfiguration.respondsToSelector(Selector("backgroundSessionConfigurationWithIdentifier:")){
        configuration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier("myBackgroundSessionIdentifier\(++counter)")
    }
    else{
        configuration = NSURLSessionConfiguration.backgroundSessionConfiguration("myBackgroundSessionIdentifier\(++counter)")
    }
    configuration.allowsCellularAccess = true;
    configuration.timeoutIntervalForRequest = 20.0;
    configuration.timeoutIntervalForResource = 40.0;
    configuration.HTTPMaximumConnectionsPerHost = 1;
    configuration.networkServiceType = .NetworkServiceTypeBackground;
    configuration.discretionary = false;
    let queue=NSOperationQueue.mainQueue()
    session = NSURLSession(configuration:configuration, delegate:self, delegateQueue:queue)
    return session;
}

该应用程序崩溃:

CFNetwork SSLHandshake 失败 (-9810)

当我提交相关任务时:

let url=NSURL(fileURLWithPath: escapedUrlString!);
let task = backgroundSession()?.downloadTaskWithURL(url!, completionHandler: {[weak self](data, reponse, error) in
        //UIApplication.sharedApplication().applicationIconBadgeNumber = 3;
    })
task!.resume()

如果我通过使用以下创建的标准会话来做同样的事情:

 NSURLSession.sharedSession()

连接没有问题,但是当应用程序处于非活动状态时,当然会停止提交。

错误的根源可能是什么问题?

4

1 回答 1

-2

我失去了对这个线程的引用,但问题以某种方式得到了解决。

于 2015-07-08T19:01:24.763 回答