Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift中的编译时条件协议一致性_Swift_Swift Protocols_Conditional Compilation - Fatal编程技术网

Swift中的编译时条件协议一致性

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

我有一个Swift类,在特定的编译时条件下,它应该实现特定的协议。我预计条件复杂度
#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扩展以符合协议并在编译时检查中包装所有内容