Swift 2:尝试/捕捉非投掷功能

时间:2015-08-26 19:54:14

标签: swift try-catch swift2

我正在重构一个Obj-c类,@try/@catch周围有一个removeObserver:块。

在swift中执行相同操作会触发警告,因为removeObserver可能会失败(当没有观察者时),但它不会抛出任何错误。

知道如何实现相同的行为吗?

编辑:我的代码:

try {  
    self.removeObserver(self, forKeyPath: "LineDisplayChanged")
}

1 个答案:

答案 0 :(得分:0)

要删除警告,请删除APIUSR06 APIUSR07 APIUSR08 APIUSR09 APIUSR01 APIUSR02 APIUSR00 APIUSR03 APIUSR04 APIUSR05 try { }抛出异常,而不是错误。并且你无法在Swift中捕获异常,所以请确保只在你观察它时才调用这个方法,否则它会崩溃并且在Swift中无法解决它。

您可以在Objective-C中编写一个包含此调用并捕获异常并返回错误的类别。