Swift implementa el protocolo LiteralConvertible

Estoy tratando de implementar el protocolo IntegerLiteralConvertible enUIColor. Lo que realmente me gustaría hacer es esto

 let black: UIColor = 0x000000

Primero intenté seguir el blog rápido aquíhttps://developer.apple.com/swift/blog/?id=8 que no funciona fuera de la caja. Parece de acuerdo con el flujo rápidohttps://github.com/ksm/SwiftInFlux#literalconvertible-protocols-use-constructor que ya no usan convertFromIntegerLiteral y en su lugar usan el inicializador. Por lo tanto, esto es lo que deberíamos tener:

extension UIColor: IntegerLiteralConvertible {
    public convenience init(integerLiteral value: IntegerLiteralType) {
    UIColor(red: 1, green: 0, blue: 0, alpha: 1)
    }
}

Pero entonces, ¿qué pasa dentro del inicializador? No puedo establecerme. Me gustaría decir algo como

self.init(red: 0, green: 0, blue: 0, alpha: 1)

eso no funciona y tampoco nada más parece. Recibo el error "el requisito de inicializador init (IntegerLiteral) solo puede cumplirse con un inicializador 'requerido' en la definición de la clase no final 'UIColor'" que no es muy útil. ¿Alguna idea de cómo hacer que esto funcione?

Respuestas a la pregunta(3)

Su respuesta a la pregunta