У меня есть проект, который имеет как iOS, так и цель OS X. Есть ли препроцессорный макрос, который прав, когда я компилируюсь для OS X? Я попробовал это: < /p>
#if TARGET_OS_MAC
@interface BFNode : NSObject {
#else
@interface BFNode : NSObject {
#endif
< /code>
Но target_os_mac < /code>, похоже, не работает. Когда я пытаюсь запустить приложение на iOS, я получаю ошибку компилятора, потому что оно пытается скомпилировать первую строку, и нет протокола nspasteboard , определенного на iOS. Если я использую это и обменивает объявления @Interface , это работает. < /p>
Но есть много мест, где у меня есть код, у которой нет версии iOS, поэтому мне тоже нужен макрос для OS X. < /p>
Решение: < /strong> < /p>
Я в итоге определил новый макрос в файле .pch: < /p>
#define TARGET_OSX TARGET_OS_IPHONE == 0
Подробнее здесь: https://stackoverflow.com/questions/121 ... -x-targets