Swift: la instrucción Switch no funciona

Quiero almacenar un UIColor en NSUserDefaults. Sin embargo, esto generó algunos problemas, así que pensé que podría save el UIColor como String para convertirlo nuevamente en un UIColor.

Decidí hacer esto con una statement de cambio:

switch bc { case "UIColor.networkingColor()": blockColour = UIColor.networkingColor() case "UIColor.orangeColor()": blockColour = UIColor.orangeColor() case "UIColor.blueColor()": blockColour = UIColor.blueColor() case "UIColor.greenColor()": blockColour = UIColor.greenColor() case "UIColor.blackColor()": blockColour = UIColor.blackColor() case "UIColor.grayColor()": blockColour = UIColor.grayColor() case "UIColor.purpleColor()": blockColour = UIColor.purpleColor() default: println("ERROR!") } 

Sin embargo, obtengo errores en cada línea de casos, diciendo:

 Type 'String' does not conform to protocol 'IntervalType' 

Estoy seguro de que este no puede ser el método más eficaz o la forma más fácil de hacerlo, pero es la única forma en que podría encontrar la forma de save un UIColor en NSUserDefaults.

¿Cuál es el problema?

EDITAR: Código anterior que muestra cómo se define bc:

 var bc : String! var blockColour : UIColor! var userDefaults = NSUserDefaults.standardUserDefaults() if var blockColourString : AnyObject = userDefaults.valueForKey("blockColour") { blockColourString = userDefaults.valueForKey("blockColour") bc = blockColourString as String } else { var blockColourString : AnyObject = "UIColor.orangeColor()" userDefaults.setValue(blockColourString, forKey: "blockColour") bc = blockColourString as String } userDefaults.synchronize() 

Este es un duplicado, pero el duplicado no tiene un equivalente rápido. Aquí está eso, no probado:

Una forma de hacerlo sería archivarlo (como con NSColor, aunque no lo he probado):

 let colorData = NSKeyedArchiver.archivedDataWithRootObject(color) NSUserDefaults.standardUserDefaults.setObject(colorData forKey:"myColor") 

Y para recuperarlo:

 var color : UIColor? if let colorData = NSUserDefaults.standardUserDefaults.objectForKey("myColor") as? NSData { color = NSKeyedUnarchiver.unarchiveObjectWithData(colorData) as UIColor }