Я пытаюсь сделать свой код компилируемым как с Swift 1.2, так и с 2.0, не создавая новую ветку, используя макрос.
Макрос в Swift, который вы определили в пользовательских флагах Swift Compiler, не позволяет вам проверять условия так же свободно, как Obj-C.
Например, в объявлении функции, если она похожа на Obj-C. Я могу сделать что-то вроде этого.
class ThisIsAClass
{
#if SWIFT_TWO_POINT_O
func foo(bar bar: String)
#else
func foo(#bar: String)
#endif
{
// Do some common code
// ...
// ...
#if SWIFT_TWO_POINT_O
print("Do 2.0 things")
#else
print("Do 1.2 things")
#endif
}
}
Проверка состояния макроса внутри функции в порядке. Но проверка условия для объявления функции не будет выполнена.
Есть ли способ добиться чего-то подобного.
Или разделить между ветвями Swift 1.2 и 2.0 - единственный способ.