我有一个应用程序从我的服务器检索JSON数据并将其输入我的Core Data模型。我有这个工作得相当好,减去了一些我已经想不到的随机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()
}