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

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

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

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

过go ,公约将extendedtype+categoryname.m用于目标C

所以问题是:鉴于上述String个扩展名,swift源文件应该被称为什么?

推荐答案

我见过的大多数例子都是模仿Objective-C方法.上面的示例分机为:

String+UTF8Data.swift

这样做的好处是,命名约定使人们很容易理解它是一个扩展,以及扩展了哪个类.

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

使用Java使用的xxxable.swift方法对于只定义方法的协议或扩展很好.但同样,上面的示例定义了一个属性,因此UTF8Dataable.swift在语法上没有太多意义.

Ios相关问答推荐

无法在fastlane和github操作中从react-native 应用程序构建ios

iPhone:iOS 17.4中没有气压数据

Jenkins node 无法运行fastlane命令-未找到命令

通过在SWIFT中不起作用的泛型传递协议一致性类型

在SwiftUI中动态隐藏列表的空部分

iphone 11 和 iphone 12 对于相同的布局显示不同的结果

BezierPath 中绘制图像形状轮廓的算法(Canny 边缘检测器)

swiftui动画如何实时确定不对称过渡

如何将 AppIntent 添加到应用程序目标并在交互式小部件中使用它

垂直分页 UIScrollView 高度不正确

SwiftUI 中的描边图像边框

SwiftUI:如何为 ScrollView 制作可拉伸(灵活)的粘性标题?

NSFetchedResultsController 由字符串的第一个字母创建的部分

如何使用 sendAsynchronousRequest:queue:completionHandler:

try 在 iOS 中处理后退导航按钮操作

iOS中的apk类似功能是什么?

如何防止 iOS 设备上的显示屏变暗和关闭?

如何在 iphone 屏幕中间显示活动指示器?

在 SKScene 中设置按钮

Info.plist 实用程序错误:无法打开 Info.plist,因为没有这样的文件