在Swift项目中存储扩展的位置

在Swift项目中存储扩展的位置,swift,swift2,Swift,Swift2,例如,我想使用此扩展: import Foundation extension String { func exec (str: String) -> Array<String> { .... } } 导入基础 扩展字符串{ func exec(str:String)->数组{ .... } } 我应该把它保存在哪里?我是否应该创建一个新文件extensions.swift?对于上面的全局扩展名,我认为最好将其放在extensions.swi

例如,我想使用此扩展:

import Foundation

extension String {
    func exec (str: String) -> Array<String> {
       ....
    }
}
<代码>导入基础 扩展字符串{ func exec(str:String)->数组{ .... } }
我应该把它保存在哪里?我是否应该创建一个新文件
extensions.swift

对于上面的全局扩展名,我认为最好将其放在
extensions.swift
文件中。如果您扩展了自己的一个类,我发现最好将其保存在与原始类相同的文件中,以便其他开发人员了解它


如果特定全局类(如
String
)有多个扩展名,则可以将它们分组到
StringExtensions.swift
文件中。

我建议在项目中保留一个组,然后创建名为[class]扩展名的文件。如果您将所有扩展名存储在其他答案中提到的同一个文件中,那么在查找您要查找的扩展名时可能会遇到很多问题,最终会得到一个充满不同职责的文件。在一个小项目中,这可能无关紧要,但最好是在项目的早期强制进行良好的组织,因为你永远不知道哪个项目可能会增长。

objective-c
上的老方法是这样命名:

UIView+FrameUtils.h

NSMutableArray+Sort.h

UIColor+HEX.h

NSDictionary+Nil.h

所以很清楚扩展了什么(在objective-c中分类)以及实现了什么新功能。因此,您也可以在
Swift
中使用此样式