2015-04-22 11 views
5

我想爲Mac OS和iOS應用程序創建類。不幸的是,我不能在iOS上使用NSColor,在Mac OS上也不能使用UIColor。適用於Mac OS和iOS的通用類

其實我有以下代碼:

#if os(iOS) 
    func myFunc(color: UIColor?) { 
     self.myFuncX(color) 
    } 
#elseif os(OSX) 
    func myFunc(color: NSColor?) { 
     self.myFuncX(color) 
    } 
#endif 

private func myFuncX(color: AnyObject?) { 
    #if os(iOS) 
     myColor = color as! UIColor 
    #elseif os(OSX) 
     myColor = color as! NSColor 
    #endif 
} 

有沒有什麼更好的辦法?

+0

是的,抱歉...我只是沒有在iOS上測試代碼;)我編輯了我的帖子。 – Lupurus

回答

9

您應該能夠使用typealias的顏色類,像這樣:

#if os(iOS) 
    typealias XColor = UIColor 
#elseif os(OSX) 
    typealias XColor = NSColor 
#endif 

func myFunc(color: XColor?) { 
    self.myFuncX(color) 
} 

的想法是有條件的編譯限制的類型定義爲XColor,然後使用該類型別名來代替UIColorNSColor,如特定系統所要求的。

相關問題