Es posible agregar extensiones a los tipos de objetos Swift existentes usando extensiones, como se describe en la especificación del lenguaje .
Como resultado, es posible crear extensiones como:
extension String {
var utf8data:NSData {
return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
}
}
Sin embargo, ¿cuál es la mejor práctica de nomenclatura para los archivos fuente de Swift que contienen tales extensiones?
En el pasado, la convención era usar extendedtype+categoryname.mpara el tipo Objective-C como se discutió en la guía Objective-C . Pero el ejemplo de Swift no tiene un nombre de categoría, y llamarlo String.swiftno parece apropiado.
Entonces la pregunta es: dada la Stringextensión anterior , ¿cómo debe llamarse el archivo fuente rápido?
ClassName+ExtensionNameformato, y que no veo que mucha gente siga usando. Además, me parece torpe en lugar de solo definir clases y extensiones juntas, o darle al archivo un nombre mejor FooAbleTypesy definir instancias en conjunto.
Extensions.swift. De esa manera, no los perderá de vista y los recién llegados a la base de código los notarán de inmediato. Y preferiría mantener las extensiones únicas privadas para el archivo en el que se necesitan.