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

6
例如,我想使用这个扩展:
import Foundation

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

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

3个回答

10
对于像上面的全局扩展,我认为最好将其放在一个名为extensions.swift的文件中。如果您正在扩展自己的某个类,则最好将其保留在与原始类相同的文件中,以便其他开发人员了解它。
如果您有多个特定全局类(例如String)的扩展,可以将它们分组到一个名为StringExtensions.swift的文件中。

2

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


1

Objective-C中的旧方式是命名为:

UIView+FrameUtils.h

NSMutableArray+Sort.h

UIColor+HEX.h

NSDictionary+Nil.h

因此,可以清楚地看出哪些是扩展(在objective-c中分类),哪些是新功能实现。因此,您也可以在Swift中使用这种风格。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接