gpt4 book ai didi

ios - 检查可选协议(protocol)方法是否在 Swift 中实现?

转载 作者:IT王子 更新时间:2023-10-29 05:04:26 32 4
gpt4 key购买 nike

我有一个快速协议(protocol):

@objc protocol SomeDelegate {

optional func myFunction()

}

我上过的一门课:

weak var delegate: SomeDelegate?

现在我想检查 delegate 是否实现了 myFunction

在 objective-c 中我可以这样做:

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

但这在 Swift 中是不可用的。

编辑:这不同于:What is the swift equivalent of respondsToSelector?我专注于类协议(protocol)而不是类。

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

最佳答案

根据 The Swift Programming Language:

You check for an implementation of an optional requirement by writing a question mark after the name of the requirement when it is called, such as someOptionalMethod?(someArgument). Optional property requirements, and optional method requirements that return a value, will always return an optional value of the appropriate type when they are accessed or called, to reflect the fact that the optional requirement may not have been implemented.

因此,目的不是让您检查该方法是否已实现,而是您无论如何都尝试调用它并获得可选的返回。

关于ios - 检查可选协议(protocol)方法是否在 Swift 中实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30398786/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com