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

时间:2015-10-22 12:11:26

标签: swift swift2

例如,我想使用此扩展程序:

import Foundation

extension String {
    func exec (str: String) -> Array<String> {
       ....
    }
}

我应该在哪里保存?我应该创建一个新文件extensions.swift吗?

3 个答案:

答案 0 :(得分:3)

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

如果您有特定全局类的多个扩展程序,例如String,则可以将它们分组到StringExtensions.swift文件中。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

UIView+FrameUtils.h

NSMutableArray+Sort.h

UIColor+HEX.h

NSDictionary+Nil.h

因此,明确了扩展的内容(在objective-c中分类)以及实现了哪些新功能。所以你也可以在Swift中使用这种风格