我不明白为什么程序员在他们的类实现中使用extension关键字.您可以阅读其他主题,然后代码更加语义上分离等.但是当我使用自己的代码时,我觉得使用// MARK – Something更清楚.然后在
Xcode中使用方法列表(ctrl 6)时,首先看到一切.
在Apple文档中,您可以阅读:
“Extensions add new functionality to an existing class,structure,or enumeration type.”
那么为什么不直接在自己的类里面写我自己的代码呢?不像我想扩展一些外部类的功能,如NSURLSession或Dictionary,您必须使用扩展名.
Mattt Thompson在他的Alamofire图书馆中使用扩展名,也许他可以给我很少的解释,为什么他选择这种方法.
对我来说似乎是完全合理的,因为您可以使用扩展来将不同的逻辑部分暴露给不同的扩展.例如,这也可以用于使类符合协议更可读
原文链接:https://www.f2er.com/swift/319639.htmlclass ViewController: UIViewController { ... } extension ViewController: UITableViewDelegate { ... } extension ViewController: UITableViewDataSource { ... } extension ViewController: UITextFieldDelegate { ... }
为了清晰起见,协议方法在不同的扩展名中分开,这似乎比让我们说的更好:
class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource,UITextFieldDelegate {}
所以,我想说使用扩展来使自己的代码更易于阅读,而不仅仅是从SDK扩展已经存在的类,所以没有什么危害.使用扩展,您可以避免在控制器中拥有巨大的代码块,并将功能拆分成易于读取的部件,因此没有使用这些错误.