AlB*_*lue 150 xcode objective-c ios swift
可以使用扩展向现有Swift对象类型添加扩展,如语言规范中所述.
因此,可以创建扩展名,例如:
extension String {
var utf8data:NSData {
return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
}
}
Run Code Online (Sandbox Code Playgroud)
但是,包含此类扩展的Swift源文件的最佳命名做法是什么?
在过去,该公约是使用extendedtype+categoryname.m如在讨论了目标C型Objective-C的导向.但是Swift示例没有类别名称,并且调用它String.swift似乎不合适.
所以问题是:鉴于上面的String扩展,swift源文件应该被调用什么?
pic*_*ano 182
我见过的大多数例子都模仿了Objective-C方法.上面的示例扩展名为:
String+UTF8Data.swift
优点是命名约定使得它易于理解它是一个扩展,以及哪个类正在被扩展.
使用的问题Extensions.swift甚至StringExtensions.swift是不可能在不查看其内容的情况下通过其名称推断文件的目的.
使用xxxable.swiftJava 使用的方法可以用于仅定义方法的协议或扩展.但同样,上面的例子定义了一个属性,因此UTF8Dataable.swift没有多少语法意义.
Mik*_*rne 10
没有Swift惯例.把事情简单化:
StringExtensions.swift
Run Code Online (Sandbox Code Playgroud)
我为每个扩展的类创建一个文件.如果您对所有扩展使用单个文件,它将很快成为一个丛林.
我更喜欢+强调它包含扩展的事实:
String+Extensions.swift
如果文件太大,您可以针对每个目的拆分它:
String+UTF8Data.swift
String+Encrypt.swift
我更喜欢StringExtensions.swift在添加太多内容之前将文件拆分为 和 之类的String+utf8Data.swift内容String+Encrypt.swift。
另一件事是,将相似的文件合并为一个将使您的构建速度更快。请参阅优化 Swift 构建时间
| 归档时间: |
|
| 查看次数: |
32510 次 |
| 最近记录: |