È possibile aggiungere estensioni ai tipi di oggetti Swift esistenti usando le estensioni, come descritto nelle specifiche del linguaggio .
Di conseguenza, è possibile creare estensioni come:
extension String {
var utf8data:NSData {
return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
}
}
Tuttavia, qual è la migliore pratica di denominazione per i file sorgente Swift contenenti tali estensioni?
In passato, la convenzione doveva essere utilizzata extendedtype+categoryname.m
per il tipo Objective-C come discusso nella guida Objective-C . Ma l'esempio Swift non ha un nome di categoria e chiamarlo String.swift
non sembra appropriato.
Quindi la domanda è: data l' String
estensione sopra , come dovrebbe essere chiamato il file sorgente rapido?
ClassName+ExtensionName
formato e che non vedo ancora troppe persone che usano. Inoltre, trovo quel goffo al posto di definire insieme classi ed estensioni, o dare al file un nome migliore come FooAbleTypes
e definire istanze in aggregato.
Extensions.swift
. In questo modo, non perderai traccia di loro e i nuovi arrivati nella base di codice li noteranno immediatamente. E preferirei mantenere le estensioni una tantum private per il file in cui sono necessarie.