如何让Swift检测Objective-C方法使用的NSError子类?

时间:2018-01-26 00:43:05

标签: objective-c swift nserror

我正在整理一个大型遗留的Objective-C库,以便在新的Swift项目中使用。

现在,像-initWithContentsOfFile:encoding:error:(NSError*)err这样的Objective-C方法通常会在Swift端转换为init(contentsOfFile path: String, encoding enc: UInt) throws

但是在这个遗留代码库中,我们有一个自定义错误子类@interface MyError : NSError。这似乎打破了这种自动错误转换,因此像-initWIthConfig:error:(MyError**)err这样的方法仅被Swift视为 init(config: [String:Any], error: AutoreleasingUnsafeMutablePointer<MyError?>) - 这没用!

现在我看到Swift方面有一个ErrorType协议,但这似乎与此无关。我自己的错误类型(MyError)已经从NSError继承而且需要在Objective-C方面保持这种状态。

如何让Swift将我的自定义错误子类识别为错误类型,以便将使用它的每个方法都处理为throws?我能够编辑遗留框架,但我不确定如何为转换注释这些方法。

0 个答案:

没有答案