嗨stackoverflow成员,在Swift中正确的错误处理
我在斯威夫特工作真的很难,现在我有一个微不足道的问题。我是一名前C#开发人员,所以直到现在错误处理尝试{} ... catch {} ...消息...完成!
现在我正在开发一个使用一些JSON API的应用程序。这一切都工作,下载JSON数据,将它们打包到我的对象,但有一个问题。正确的错误处理..
我有以下代码下载&解析JSON:
//Download & Parse JSON
func getJSON(urlToRequest: String) -> NSDictionary {
var url: NSURL = NSURL(string: urlToRequest)
var jsonRequest: NSURLRequest = NSURLRequest(URL: url)
var jsonResponse: AutoreleasingUnsafePointer<NSURLResponse?> = nil
var error: NSError?
var dataValue: NSData = NSURLConnection.sendSynchronousRequest(jsonRequest, returningResponse: jsonResponse, error:&error)
if error.description.isEmpty {
var jsonResult: NSDictionary = NSJSONSerialization.JSONObjectWithData(dataValue, options: NSJSONReadingOptions.MutableContainers, error: &error) as NSDictionary
if error.description.isEmpty {
return jsonResult
}
else {
return NSDictionary(object: "Error: Something with parsing went wrong :(", forKey: "error")
}
}
else {
return NSDictionary(object: "Error: There was an error with your connection :(", forKey: "error")
}
}
错误部分只是暂时的,问题是我的ViewController只是调用一个函数来获取整个数据本周(天,对决等)
我这样调用它:
var rWrapper = RiotWrapper()
let lcsWeek: Week = rWrapper.getWeek("2014-07-07")
我getWeek方法调用3-4函数的ns,它们都可以解析与之前的响应相关的JSON数据。
好吧,长话短说问题:我想中止所有任务如果JSON或HTTP失败,并填写我的TableView只是一个错误消息,我怎么能实现这一点?
是这样的:如果发生错误 - >停止手头的一切工作 - >数据一周的回报,例如空呃..零 - >打印错误
有人能帮助我吗?如果有人根据这个话题有一些讲座,它也会很好:D
在此先感谢! Btw:对不起,我的“坏”英文
我在做的正是这样那一刻,它就像魅力一样。一旦你弄清楚选择权是如何工作的,那么只有一个词......惊人的:D – mort3m