NSURLSession - 垃圾数据结束(WatchOS)
NSURLSession - Garbage Data At End (WatchOS)
我希望有人能够帮助我理解在我的 WatchOS 2 应用程序中尝试实现 NSURLSession 时遇到的问题。
无论出于何种原因,我收到错误;
Error Domain=NSCocoaErrorDomain Code=3840 "Garbage at end."
UserInfo={NSDebugDescription=Garbage at end.}
但 仅 在我 运行 我的应用程序一次之后。我第一次 运行 模拟器中的 WatchOS 应用程序,我正在下载的数据被毫无问题地接收和解析。第二次以上我 运行 应用程序,我收到上述错误。
我有 运行 我的 JSON 通过我能找到的每一个可能的验证器,它验证没有问题。数据似乎有效,但仅在首次启动时有效。如果我观看了一段时间(似乎超过 10 分钟),然后 运行 模拟器中的应用再次运行一次,然后我收到错误。
这是我从 InterfaceController.swift 文件中提取的 运行 代码;
func getData() {
let myURL = "http://www.myurl.com/sample.json"
let dataURL = NSURL(string: myURL)
let conf = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: conf)
dataTask = session.dataTaskWithURL(dataURL!) { data, response, error in
guard error == nil, let data = data else {
return
}
do {
let json = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers) as! NSArray
for item in json {
let name: String? = item["name"] as? String
let email: String? = item["email"] as? String
let nickName: String? = item["nickName"] as? String
let file = Data(
name: name,
email: email,
nickName: nickName)
self.files.append(file)
dispatch_async(dispatch_get_main_queue()) {
self.reloadTable()
}
}
} catch {
print(error)
}
}
dataTask!.resume()
}
如有任何想法,我们将不胜感激。谢谢!
已找到临时修复方法。集:
sessionConfig.requestCachePolicy = NSURLRequestReloadIgnoringCacheData;
看起来这是由请求缓存中的错误引起的。
我希望有人能够帮助我理解在我的 WatchOS 2 应用程序中尝试实现 NSURLSession 时遇到的问题。
无论出于何种原因,我收到错误;
Error Domain=NSCocoaErrorDomain Code=3840 "Garbage at end."
UserInfo={NSDebugDescription=Garbage at end.}
但 仅 在我 运行 我的应用程序一次之后。我第一次 运行 模拟器中的 WatchOS 应用程序,我正在下载的数据被毫无问题地接收和解析。第二次以上我 运行 应用程序,我收到上述错误。
我有 运行 我的 JSON 通过我能找到的每一个可能的验证器,它验证没有问题。数据似乎有效,但仅在首次启动时有效。如果我观看了一段时间(似乎超过 10 分钟),然后 运行 模拟器中的应用再次运行一次,然后我收到错误。
这是我从 InterfaceController.swift 文件中提取的 运行 代码;
func getData() {
let myURL = "http://www.myurl.com/sample.json"
let dataURL = NSURL(string: myURL)
let conf = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: conf)
dataTask = session.dataTaskWithURL(dataURL!) { data, response, error in
guard error == nil, let data = data else {
return
}
do {
let json = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers) as! NSArray
for item in json {
let name: String? = item["name"] as? String
let email: String? = item["email"] as? String
let nickName: String? = item["nickName"] as? String
let file = Data(
name: name,
email: email,
nickName: nickName)
self.files.append(file)
dispatch_async(dispatch_get_main_queue()) {
self.reloadTable()
}
}
} catch {
print(error)
}
}
dataTask!.resume()
}
如有任何想法,我们将不胜感激。谢谢!
已找到临时修复方法。集:
sessionConfig.requestCachePolicy = NSURLRequestReloadIgnoringCacheData;
看起来这是由请求缓存中的错误引起的。