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;

看起来这是由请求缓存中的错误引起的。