1

我有一个应用程序从我的服务器检索 JSON 数据并将其输入到我的核心数据模型中。我的这个工作相当不错,减去了一些EXC_BAD_ACCESS我还没有弄清楚的随机错误问题。在此 dataTask 期间,它可以检索大量数据,因此可能需要一段时间才能完成。

我正在寻找一种让用户暂停应用程序的方法,dataTask 将继续检索数据。我看到 NSURLSession 有一个后台模式,但看到它只支持上传和下载任务。

有没有办法支持这一点?

我的 dataTask 功能:

class func Request(file: String, withData: String?, completion: (NSData -> Void)) {
    let url = NSURL(string: "\(root)\(file)")!

    let request = NSMutableURLRequest(URL: url)

    if let sentData = withData {
        request.HTTPMethod = "POST"
        request.HTTPBody = sentData.dataUsingEncoding(NSUTF8StringEncoding)
    }

    let dataTask = session.dataTaskWithRequest(request) {
        data, response, error in

        if error != nil {
            if error?.domain == NSURLErrorDomain && error?.code == NSURLErrorTimedOut {
                print("Data task timed out")
            }
        } else {
            let httpResponse : NSHTTPURLResponse = response as! NSHTTPURLResponse

            if httpResponse.statusCode == 200 {
                completion(data!)
            } else {
                print("Request failed with status code: \(httpResponse.statusCode)")
            }
        }
    }
    dataTask.resume()
}
4

0 回答 0