我有一個同時擁有iOS和OS X目標的項目。當我編譯OS X時,是否有預處理宏?我試過這個:OS X目標的預處理宏?
#if TARGET_OS_MAC
@interface BFNode : NSObject <NSPasteboardReading, NSPasteboardWriting> {
#else
@interface BFNode : NSObject {
#endif
但是TARGET_OS_MAC
似乎不起作用。當我嘗試在iOS上運行應用程序時,出現編譯器錯誤,因爲它嘗試編譯第一行,並且在iOS上沒有定義NSPasteboardReading
協議。我知道TARGET_OS_IPHONE
也是。如果我使用它並交換@interface
聲明它的工作。
但有很多地方我有代碼,沒有iOS版本,所以我需要一個OS X的宏。
SOLUTION:
我結束了在.PCH文件中定義一個新的宏:
#define TARGET_OSX TARGET_OS_IPHONE == 0
哦,哇,如何誤導... – DrummerB