Luk*_*asz 5 error-handling bridge initialization objective-c swift
假设我们有一个带有初始化器的 Swift 类,它可以抛出错误。此类必须在Objective-C代码库(NSObject子类)中使用:
import Foundation
enum EvenError : ErrorType {
case NonEvenNumber
}
class FooEven : NSObject {
var evenNumber : UInt
init(evenNumber: UInt) throws {
guard evenNumber % 2 == 0 else {
throw EvenError.NonEvenNumber
}
self.evenNumber = evenNumber
}
}
Run Code Online (Sandbox Code Playgroud)
产生编译警告:
<unknown>:0: warning: no calls to throwing functions occur within 'try' expression
Run Code Online (Sandbox Code Playgroud)
我可以通过两种方式解决此警告:
init... -> throws失败的初始化器 ( )替换可抛出的初始化器( init?)NSObject然而这样我会:
if let fooEven = FooEven.init() {...}语句Objective-C代码中使用它:以上都不能满足我的需要/要求。
有没有其他方法可以在不丢失有关错误的信息的情况下删除该警告?