对于下载任务,完成处理器将用于location
nil
值和NSError
对象的code
值被称为将是NSURLErrorCancelled
。在斯威夫特3:
let task = session.downloadTask(with: url) { location, response, error in
if let error = error as? NSError {
if error.code == NSURLErrorCancelled {
// canceled
} else {
// some other error
}
return
}
// proceed to move file at `location` to somewhere more permanent
}
task.resume()
还是在斯威夫特2:
let task = session.downloadTaskWithURL(url) { location, response, error in
if let error = error {
if error.code == NSURLErrorCancelled {
// canceled
} else {
// some other error
}
return
}
// proceed to move file at `location` to somewhere more permanent
}
task.resume()
同样,对于数据的任务,完成处理器将与Error
/NSError
指示是否被取消调用。在斯威夫特3:
let task = session.dataTask(with: url) { data, response, error in
if let error = error as? NSError {
if error.code == NSURLErrorCancelled {
// canceled
} else {
// some other error
}
return
}
// proceed to move file at `location` to somewhere more permanent
}
task.resume()
还是在斯威夫特2:
let task = session.dataTaskWithURL(url) { data, response, error in
if let error = error {
if error.code == NSURLErrorCancelled {
// canceled
} else {
// some other error
}
return
}
// otherwise handler data here
}
task.resume()
来源
2014-10-16 18:35:22
Rob
怎么样的一个下载任务?该位置是否为零?还是应该依靠错误? – 2014-10-17 00:29:52
是的,'location'将是'nil',但是你可以检查'error',如果'code'是'NSURLErrorCancelled',你知道它由于某种原因被取消了。 – Rob 2014-10-17 00:56:59