Objective c 不接受bool值的Swift协议属性获取程序
我正在尝试为WebView类创建一个Swift协议,以便可以在Javascript中使用它。这适用于大多数属性,但布尔属性除外。原因是幕后的Obj-C getter的命名不同(对于Objective c 不接受bool值的Swift协议属性获取程序,objective-c,swift,Objective C,Swift,我正在尝试为WebView类创建一个Swift协议,以便可以在Javascript中使用它。这适用于大多数属性,但布尔属性除外。原因是幕后的Obj-C getter的命名不同(对于load:Bool属性,getter是isload)。如何在Swift协议中指定这样的getter 以下是相关代码: @objc protocol WebViewJSExport : JSExport { var mainFrame: WebFrame! { get }; var selectedFrame:
load:Bool
属性,getter是isload
)。如何在Swift协议中指定这样的getter
以下是相关代码:
@objc protocol WebViewJSExport : JSExport {
var mainFrame: WebFrame! { get };
var selectedFrame: WebFrame! { get };
var loading: Bool { get };
var mainFrameURL: String! { get };
var mainFrameDocument: DOMDocument! { get };
var mainFrameTitle: String! { get };
}
当我在课堂上使用此协议时,如下所示:
class WebClient: WebView, WebViewJSExport {
}
我收到此编译器错误(带有2个详细信息条目):
类型“WebClient”不符合协议“WebViewJSExport”
协议需要类型为“Bool”的属性“加载”
getter为“加载”DO提供的Objective-C方法“isLoading”
与需求的选择器不匹配(“加载”)
如果我没有弄错的话,这应该可以回答您的问题:[如何在Swift中使用扩展协议公开Obj-C类上的现有属性][1][1]:@homigbrain,您的链接是正确的答案,因此请将其作为答案发布,以便我可以接受。