ios - 为现有对象添加扩展名的 Swift 文件命名的最佳实践是什么?

可以使用扩展为现有的 Swift 对象类型添加扩展,如 language specification 中所述。 .

因此,可以创建如下扩展:

extension String {
    var utf8data:NSData {
        return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
    }
}

但是,对于包含此类扩展名的 Swift 源文件,最佳命名做法是什么?

过去,Objective-C 的约定是使用 extendedtype+categoryname.m 类型如 the Objective-C guide 中所述.但是 Swift 示例没有类别名称,将其称为 String.swift 似乎并不合适。

那么问题来了:给定上面的String扩展,swift源文件应该叫什么?

最佳答案

我见过的大多数示例都模仿了 Objective-C 方法。上面的示例扩展是:

String+UTF8Data.swift

优点是命名约定便于理解它是扩展,以及扩展的是哪个类。

使用 Extensions.swift 甚至 StringExtensions.swift 的问题在于,如果不查看文件内容,就无法通过文件名推断文件的用途。

使用 Java 使用的 xxxable.swift 方法适用于仅定义方法的协议(protocol)或扩展。但同样,上面的示例定义了一个属性,因此 UTF8Dataable.swift 没有太多语法意义。

https://stackoverflow.com/questions/26319660/

相关文章:

ios - UILabel - 自动调整大小标签以适合文本?

ios - 如何将我的设备 token (NSData) 转换为 NSString?

iphone - Objective-C 的 JSON 解析器比较(JSON 框架、YAJL、Tou

objective-c - 从 UIColor 获得稍微更亮和更暗的颜色

ios - 属性 "Nonatomic"是什么意思?

iphone - UIWebView背景设置为Clear Color,但不透明

ios - 如何获取在 UIWebView 中显示的 HTML 页面的标题?

objective-c - 在 Cocoa 中生成一个随机的字母数字字符串

objective-c - 我如何判断一个对象是否附加了键值观察器

iphone - 指定的权利...配置文件。 (0xE8008016)。错误 iOS 4.2