2015-04-22 19 views
5

Mac OS ve iOS-App için bir sınıf oluşturmak istiyorum. Maalesef iOS için NSColor'u ve Mac OS için UIColor'u kullanamıyorum.Mac OS ve iOS için evrensel sınıf

#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 
} 

daha iyi bir yolu var mı: Aslında Aşağıdaki kod var

?

+0

Evet, pardon ... Kodu iOS'da henüz test etmedim;) Yazımı düzenledim. – Lupurus

cevap

9

Böyle renk sınıf için typealias kullanmak mümkün olmalıdır: Fikir UIColor yerine o tip takma adını kullanarak sonra XColor için bir tür tanımına koşullu derleme sınırlamak ve etmektir

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

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

veya belirli sistemde gerektiği gibi NSColor.