【发布时间】:2016-06-22 13:29:58
【问题描述】:
我收到以下错误:
Throwing method cannot be a member of an @objc protocol because it returns a value of type 'Bool'; return 'Void' or a type that bridges to an Objective-C class
定义 Swift 协议时也需要桥接到 Objective-C:
@objc public protocol Saving {
func save() throws -> Bool
}
是否有其他方法可以定义 Swift 方法,该方法可以返回 Bool,可能会引发错误并与 Objetive-C 兼容?
【问题讨论】:
-
为什么要返回一个 Bool 和 throw?通过返回真/假或抛出来指示成功/失败。 –
func save() throws将被转换为 Objective-C 为- (BOOL)saveAndReturnError:(NSError **)error; -
“Using Swift with Cocoa and Objective-C”文档不清楚Swift函数抛出错误是否会转换为Objective-C方法返回BOOL。
-
我现在实际测试了一下,查看了Swift生成的头文件,你是对的。
标签: objective-c swift error-handling throw