我有这段代码:
override func viewDidLoad() {
super.viewDidLoad()
let id = NSUserDefaults.standardUserDefaults().objectForKey("id") as! String
let url = NSURL (string: "http://visia-ontwikkeling.nl/polen/city_details.php?id=\(id)");
let requestObj = NSURLRequest(URL: url!);
subtitleLabel.loadRequest(requestObj);
}
我希望它被缓存,所以我可以在没有互联网的情况下使用它,但我找不到如何使用HanekeSwift。这就是我试过的:
override func viewDidLoad() {
super.viewDidLoad()
let id = NSUserDefaults.standardUserDefaults().objectForKey("id") as! String
let cache = Shared.JSONCache
let url = NSURL (string: "http://visia-ontwikkeling.nl/polen/city_details.php?id=\(id)");
let requestObj = NSURLRequest(URL: url!);
cache.fetch(URL: url!).onSuccess { JSON in
self.subtitleLabel.loadRequest(requestObj);
}
}
但是它在控制台中给了我这个错误:
2015-09-15 15:02:38.584 Ontdek Polen [4478:1133249] [HANEKE] [ERROR] 无效的JSON数据,错误错误Domain = NSCocoaErrorDomain Code = 3840 “操作无法完成。(Cocoa error 3840。)”(JSON文本 没有从数组或对象和选项开始,不允许片段 设置。)UserInfo = 0x7fb161454330 {NSDebugDescription = JSON文本没有 从数组或对象和选项开始,以允许未设置片段。}
我知道问题是它期待JSON,但我需要加载页面的内容。
答案 0 :(得分:0)
当您无法将即将到来的数据解析为JSON时,错误就在于使用JSONCache。相反,请尝试使用不同的Haneke缓存类型。
在这种情况下,我认为您应该使用原始数据,这将改变这一行:
let cache = Shared.JSONCache
到
let cache = Shared.dataCache