我正在开发一个应用程序,以增加我对Swift的更多了解。我的问题之一是是否可以委托带有结构作为参数的可选函数。
我能做些什么:
@objc protocol someProtocol {
optional func optionalFunc(someClass: someClass)
}
class someClass: NSObject {
}
但是,我想做什么(问题代表objc中的结构):
@objc protocol someProtocol {
optional func optionalFunc(someStructure: someStructure)
}
struct someStructure {
}
我无法找到解决此问题的方法。
我想要的另一件事与此类似,但使用枚举而不是结构:
@objc protocol someProtocol {
optional func optionalFunc(someEnum: someEnum)
}
enum someEnum {
case example
}
如果有人可以帮助我,我将不胜感激!
非常感谢!卢西亚诺!
最佳答案
Swift 2.0允许您执行协议的默认实现。
protocol someProtocol {
func optionalFunc(someStructure: SomeStructure)
}
extension someProtocol {
func optionalFunc(someStructure: SomeStructure){
// optional, leave empty
}
}
struct SomeStructure {
}
这样,您就可以使用可选装饰来做您想做的事情。