在Swift上捕获错误并在View Controller上显示警告

时间:2015-08-12 18:17:58

标签: ios swift alert

我正在使用Swift为IOS开发一个应用程序,并且在某些时候运行该行:

let myURLString = "http://FILE URL"
var myHTMLString:NSString = ""
if let myURL = NSURL(string: myURLString) {
    var error: NSError?
    myHTMLString = NSString(contentsOfURL: myURL, encoding: NSUTF8StringEncoding, error: &error)!

    if let error = error {
        var alert = UIAlertController(title: "Alert", message: "Message", preferredStyle: UIAlertControllerStyle.Alert)
        alert.addAction(UIAlertAction(title: "Click", style: UIAlertActionStyle.Default, handler: nil))
        println("Error : \(error)")
    }
    else {
        println("HTML : \(myHTMLString)")
    }
}
else {
    println("Error: \(myURLString) doesn't seem to be a valid URL")
}
return myHTMLString as String

返回一个String。

如果设备(或使用XCode的Mac)没有Internet,则应用程序会失败,因为:

        myHTMLString = NSString(contentsOfURL: myURL, encoding: NSUTF8StringEncoding, error: &error)!

为null(无)

我的问题是:如何捕获此错误,继续执行并在View Controller中显示错误消息?

1 个答案:

答案 0 :(得分:0)

将myHTMLString作为字符串返回?可选而不是String。一旦调用应用程序返回myHTMLString变量,检查nil

    if let htmlString = myHTMLString{
         // HTML String returned by function isnt nil
    }
    else {
         // HTML String returned by function is nil. Handle the error
    }