我有一个纯swift结构,不能在协议声明中使用@obc
// Struct is very heavy on processing to create
struct HugeDataStruct {
....
}
protocol MyOptionalProtocol: class {
func frameWork(_ framework: Framework, willProcess data: HugeDataStruct)
}
extension MyOptionalProtocol {
func frameWork(_ framework: Framework, willProcess data: HugeDataStruct) {}
}
现在这是问题所在。我只想在委托人实现了可选协议功能的情况下进行大量处理。
// Somewhere else in my framework
func callDelegateFuncOnlyIfImplemented() {
let hugeDataStruct: HugeDataStruct = doSomeMassiveProcessing()
frameworkDelegate?.frameWork(_ framework: self, willProcess data: hugeDataStruct
}
在进行大量处理之前,是否有任何方法可以检测到委托是否已实现了可选功能?