NSError NSError

还有一个非常重要的数据类型,他原先在 Swift 2.0 之前和在 Objective-C 里是一模一样的,但是在之后的版本里消失了,这个类型就是 NSError。

他用来反馈函数里出的错误。我们可以来看一下,下面这段代码是怎么用 NSError 的:

NSError *error;
NSString *contents = [NSString stringWithContentsOfFile:@"hello.txt"
usedEncoding:nil error:&error];

代码很好理解,一开始他创建了一个新的 NSError ,并把它命名为 error。然而现在它还是一个 nil 值,因为只有当错误出现,才会被错误信息所替代。

接着在代码中我把 &error 作为 error 的参数传过去,也就是覆盖了原来的 nil。到这一步,这个对象才被真正真正的创建完成,并且有了值。

这个数据类型非常有用。当我们有一个指向指针的指针时,我们就要用到它了。因为我们既想找出错误,又不想修改对象,所以就把一个指向指针的指针传到它,如果这个指针的指向出了问题的话,我们就可以从外部监测到。

Objective-C 里这个类非常非常常用,但是到了 Swift 2.0 之后,官方建议我们用 try/catch 方法来搞定这件事。

results matching ""

    No results matching ""