可能重複:
Which conditional compile to use to switch between Mac and iPhone specific code?使用編譯指示ifdef有條件地爲mac和ios編譯相同的協議標頭?
我定義它應該工作在Mac和iOS上就好了一個協議。然而,協議的其中一種方法會更好地返回一個特定的對象類(而不僅僅是'id'),但該類不是基礎類,因此在兩個平臺上(例如UIButton和NSButton)會有所不同。
如何使用像#ifdef TARGET_OS_IPHONE
這樣的編譯標記在兩個庫中包含相同的協議標頭,一個爲iOS構建,一個爲Mac?
這是我實際的協議,並在條件編譯我的(碎)嘗試
#import <Foundation/Foundation.h>
@protocol SharedAppDelegate <NSObject>
#ifdef TARGET_OS_IPHONE
@protocol UIApplicationDelegate;
+ (NSObject<UIApplicationDelegate> *)sharedAppDelegate;
#else
@protocol NSApplicationDelegate;
+ (NSObject<NSApplicationDelegate> *)sharedAppDelegate;
#endif
@end
有一件事我知道了蝙蝠是目標不包括模擬器,但我不能找到一個堅實的例子一個覆蓋Mac和另一個iOS所有應用的目標。
它類似於 - 相信我,我一直在尋找這個問題失敗了一個小時,詢問我之前 - 但因爲這個問題有一個具體的例子現在已經被正確地解決,我會說它是不同的。儘管感謝您的鏈接。 – SG1