gpt4 book ai didi

class - Swift 和使用类扩展

转载 作者:IT王子 更新时间:2023-10-29 05:21:07 27 4
gpt4 key购买 nike

我不明白为什么程序员在他们的类实现中使用extension 关键字。您可以在其他主题中读到代码在语义上更加分离等。但是当我使用自己的代码时,使用 //MARK - Something 对我来说感觉更清楚。然后当你在 Xcode 中使用 methods list (ctrl+6) 时,一切都一目了然。

在 Apple 文档中,您可以阅读:

“Extensions add new functionality to an existing class, structure, or enumeration type.”

那么为什么不直接在我自己的类中编写我自己的代码呢?不像我想扩展一些外部类的功能,比如 NSURLSessionDictionary,你必须使用扩展。

Matt Thompson 在他的 Alamofire 库中使用扩展,也许他可以给我一点解释,为什么他选择这种方法。

最佳答案

对我来说这似乎是完全合理的,因为您可以使用扩展将不同的逻辑部分暴露给不同的扩展。这也可用于使类符合协议(protocol)更具可读性,例如

class ViewController: UIViewController {
...
}

extension ViewController: UITableViewDelegate {
...
}

extension ViewController: UITableViewDataSource {
...
}

extension ViewController: UITextFieldDelegate {
...
}

为了清楚起见,协议(protocol)方法在不同的扩展中分开,这似乎比我们说的更好读:

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate {}

因此,我认为使用扩展来提高您自己的代码的可读性并没有什么坏处,而不仅仅是从 SDK 扩展现有的类。使用扩展,您可以避免在 Controller 中使用大量代码并将功能拆分为易于阅读的部分,因此使用这些扩展没有任何缺点。

关于class - Swift 和使用类扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28367950/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com