检查是否在Swift中实现了可选的协议方法?

联合体

我有一个快速的协议:

@objc protocol SomeDelegate {

  optional func myFunction()

}

我参加过我的一门课:

weak var delegate: SomeDelegate?

现在,我想检查是否delegatemyFunction实施。

在Objective-C中,我可以这样做:

if ([delegate respondsToSelector:@selector(myFunction)]) { 
...
}

但这在Swift中不可用。

编辑:这不同于:什么是reactsToSelector的快速等效项?我专注于类协议,而不是类。

如何检查我的委托人是否实现了可选方法?

汤米

根据Swift编程语言:

您可以通过在调用需求名称之后写一个问号(例如someOptionalMethod?(someArgument))来写问号,以检查是否实现了可选需求。当访问或调用可选属性要求和返回值的可选方法要求时,它们总是会返回适当类型的可选值,以反映可能尚未实现可选要求的事实。

因此,其目的不是要检查该方法是否已实现,而是要尝试调用该方法,并获得可选的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章