我有一个快速的协议:
@objc protocol SomeDelegate {
optional func myFunction()
}
我参加过我的一门课:
weak var delegate: SomeDelegate?
现在,我想检查是否delegate
已myFunction
实施。
在Objective-C中,我可以这样做:
if ([delegate respondsToSelector:@selector(myFunction)]) {
...
}
但这在Swift中不可用。
编辑:这不同于:什么是reactsToSelector的快速等效项?我专注于类协议,而不是类。
如何检查我的委托人是否实现了可选方法?
您可以通过在调用需求名称之后写一个问号(例如someOptionalMethod?(someArgument))来写问号,以检查是否实现了可选需求。当访问或调用可选属性要求和返回值的可选方法要求时,它们总是会返回适当类型的可选值,以反映可能尚未实现可选要求的事实。
因此,其目的不是要检查该方法是否已实现,而是要尝试调用该方法,并获得可选的方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句