Dil belirtiminde açıklandığı gibi, uzantıları kullanarak mevcut Swift nesne türlerine uzantılar eklemek mümkündür .
Sonuç olarak, aşağıdakiler gibi uzantılar oluşturmak mümkündür:
extension String {
var utf8data:NSData {
return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
}
}
Ancak, bu tür uzantıları içeren Swift kaynak dosyaları için en iyi adlandırma uygulaması nedir?
Geçmişte, kural Objective-C kılavuzundaextendedtype+categoryname.m tartışıldığı gibi Objective-C tipi için kullanmaktı . Ancak Swift örneğinin kategori adı yok ve onu çağırmak uygun görünmüyor.String.swift
Yani soru şudur: yukarıdaki Stringuzantı göz önüne alındığında , hızlı kaynak dosyaya ne denir?
ClassName+ExtensionNameformatı takip eden ve hala çok fazla insanın görmediğini gördüğüm Objective-C kategorileri . Ayrıca, sadece sınıfları ve uzantıları birlikte tanımlamak yerine veya dosyaya FooAbleTypestoplu olarak örnekleri daha iyi bir ad vermek ve tanımlamak yerine bu kadar karmaşık buluyorum .
Extensions.swift. Bu şekilde, bunların izini kaybetmezsiniz ve kod tabanına yeni gelenler hemen fark eder. Ve bir kerelik uzantıları ihtiyaç duydukları dosyaya özel tutmayı tercih ederim.