我收到以下错误:
{library: {discrete: true, hAxis: {format: "MMMM yyyy", ticks: @patient_month_distribution.keys}}}
定义Swift协议时,也需要桥接到Objective-C:
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
还有另一种方法来定义可以返回@objc public protocol Saving {
func save() throws -> Bool
}
的Swift方法,可能会抛出错误并且Bool
兼容吗?
答案 0 :(得分:4)
如评论中所示,Swift中有以下内容:
func save() throws
将被翻译成:
(BOOL)saveAndReturnError:(NSError **)error
。这解释了这个限制。
我知道在save()
示例中,返回Bool
以及投掷可能没什么意义,但我不同意关于它的评论根本没有意义。可能存在其他有用的用例。 FX。反例;使用标识符加载Bool
。如果加载失败,加载Bool
可能会返回true
/ false
或throw
,fx。如果在尝试加载时未找到标识符。
但遗憾的是,由于Swift和Objective-C的桥接方式,我们无法做到这一点。