Swift- extra argument error in call 错误

小遍在Swift学习开发中,遇到了一个错误

    #   !extra argument error in call

以前

经过查阅资料才知道,我们以前用`var error : NSError?`的方式来标识一个错误。当这个方法发生错误时,它会对` error` 对象进行赋值,我们便能获取错误的具体信息:

 var e : NSError?
  xs!.connectWithTimeout(5000, error: &e)

现在

Swift 2.0 加强了错误处理的安全性,引入了异常机制,使用 了throws 关键字来表示一个方法可能抛出错误,解决方式用 try catch语法

解决方式为:
      do {
            // 这行可以顺利执行
           try  xs!.connectWithTimeout(5000)
            // 执行不通会抛出一个错误

        } catch  let error as NSError{
            print("连接失败\(error.domain)")
        }

##注 ` NSError` 用 `let` 进行了类型转换,这其实主要是针对 Cocoa 现有的 API 的,是对历史的一种妥协。

try catch语法的理解(知道的伙伴可自动忽略)

首先要清楚,如果没有try的话,出现异常会导致程序崩溃。
而try则可以保证程序的正常运行下去,比如说:
try{
int i = 1/0;
}catch(Exception e){
........
}
#######一个计算的话,如果除数为0,则会报错,如果没有try的话,程序直接崩溃。用try的话,则可以让程序运行下去,并且输出为什么出错!

你可能感兴趣的:(Swift- extra argument error in call 错误)