我讀了很多關於爲這兩個系統創建一個跨平臺庫的問題。每個答案都指向靜態庫作爲解決方案。創建一個iOS/OS X跨平臺類
我不想用靜態庫結束了,我想創建適用於iOS的方法和其對應的OS X.
-(void)createColor:(NSColor*);
-(void)createColor:(UIColor*);
我已經是第一個問題的一類我無法找到一種方法來使用僅在特定系統中可用的類。舉例來說,我怎樣才能管理一個在iOS中的UIColor
和在OS X中的NSColor
的函數?
如果我爲iOS創建項目,當我查看Foundation.h
時,我在標題列表中找不到NSColor.h
。
我想用TARGET_OS_MAC
和TARGET_OS_IPHONE
的定義來區分這兩個系統......我是否正確?
編輯添加更多的信息:
目前我有兩個目標:一個iOSTestApp和OSxTestApp。對於這些目標,我已根據系統包含了所需的框架。
使用TARGET_OS_MAC
和TARGET_OS_IPHONE
僅在選擇OSXTestApp作爲活動目標時有效。當我選擇iOSAppTest時,Xcode返回OS X數據類型的錯誤(即NSColor
)
在這裏產生這些錯誤的代碼的一個例子:
#if TARGET_OS_MAC
-(void)createColor:(NSColor*)color;
#elif TARGET_OS_IPHONE
-(void)createColor:(UIColor*)color;
#endif
雖然如果我反轉它的工作原理的定義.. 。 這裏產生這些錯誤的代碼示例:
#if TARGET_OS_IPHONE
-(void)createColor:(UIColor*)color;
#elif TARGET_OS_MAC
-(void)createColor:(NSColor*)color;
#endif
回答說你需要IOS的靜態庫 - 其餘的問題我沒有得到 – 2013-03-10 14:21:58
我無法理解倒票。 無論如何,我不想創建一個動態庫...如果我告訴你,我想創建一個助手類多平臺,這聽起來更好嗎? – MatterGoal 2013-03-10 14:41:09
因爲這個問題對我來說真的不清楚,你的評論也沒有幫助:D標題是「創建一個非靜態庫」,而你說「我不想動態庫」:D – 2013-03-10 14:43:54