Swift中的编译时条件协议一致性
我有一个Swift类,在特定的编译时条件下,它应该实现特定的协议。我预计条件复杂度Swift中的编译时条件协议一致性,swift,swift-protocols,conditional-compilation,Swift,Swift Protocols,Conditional Compilation,我有一个Swift类,在特定的编译时条件下,它应该实现特定的协议。我预计条件复杂度#if检查会起作用,如下所示: class-MyClass #如果某个编译时间检查 :SomeProtocol #恩迪夫 { // ... #如果某个编译时间检查 func someMethodToImplementSomeProtocol(){} #恩迪夫 } 这是行不通的。编译器尝试将每个条件块编译为一系列语句。但是block:SomeProtocol不作为一系列语句进行解析 还有别的表达方式吗?例如,是否有
#if
检查会起作用,如下所示:
class-MyClass
#如果某个编译时间检查
:SomeProtocol
#恩迪夫
{
// ...
#如果某个编译时间检查
func someMethodToImplementSomeProtocol(){}
#恩迪夫
}
这是行不通的。编译器尝试将每个条件块编译为一系列语句。但是block:SomeProtocol
不作为一系列语句进行解析
还有别的表达方式吗?例如,是否有语句级的方式来表示“
MyClass
实现了SomeProtocol
”?将其放在扩展中:
#if SOME_COMPILE_TIME_CHECK
extension MyClass : SomeProtocol {
func someMethodToImplementSomeProtocol() { }
}
#endif
将其放在扩展中:
#if SOME_COMPILE_TIME_CHECK
extension MyClass : SomeProtocol {
func someMethodToImplementSomeProtocol() { }
}
#endif
定义MyClass扩展以符合协议并在编译时检查中包装所有这些内容定义MyClass扩展以符合协议并在编译时检查中包装所有内容