可以使用扩展为现有的 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 获得稍微更亮和更暗的颜色
iphone - UIWebView背景设置为Clear Color,但不透明
ios - 如何获取在 UIWebView 中显示的 HTML 页面的标题?
objective-c - 在 Cocoa 中生成一个随机的字母数字字符串