【问题标题】:How to define functions for class in different file in Swift?如何在 Swift 中为不同文件中的类定义函数?
【发布时间】:2019-11-28 20:06:33
【问题描述】:

我有一个 swift 类,其中包含大约 10 个不同的功能。它有 400 多行代码,需要分解。我想将一些功能放在不同的文件中。做这个的最好方式是什么?也许是继承?

【问题讨论】:

  • 类和这 10 个函数的本质是什么?知道这将帮助我们知道我如何适合将它们分开。为什么 10 个函数平均每个函数有 40 行? (渴望一个功能真是太棒了。)

标签: ios swift class methods


【解决方案1】:

您可以创建不同的文件,然后在extension 中放入一些方法。

例子:

class MyMessyViewController: UIViewController {
    var oneVariable: String = ""
    override func viewDidLoad() {
       super.viewDidLoad()
       anotherFunctionFromThisExtension()
    }

    func one(){
    }
    func two(){
    }
    func three(){
    }
} 

然后创建一个新文件并将更多功能放入此文件的扩展名中。

extension MyMessyViewController {

    func anotherFunctionFromThisExtension() {
       oneVariable = "I made this change from this File"
       print(oneVariable)
    }
}

如果您的视图控制器中有 Delegates、Collection/TableViews 的最佳实践,您可以使用扩展将它们分开,而不是像 extension MyMessyViewController: UICollectionViewDelegate, UICollectionViewDataSource { } 这样简单地写 extension MyMessyViewController { }

【讨论】:

  • 我认为实际上最好将UICollectionViewDelegateUICollectionViewDataSource 等完全拆分为单独的类。扩展使您的 VC 看起来更小,但它仍然是一个巨大的单体类,做了太多事情,在不同的不相关函数集之间共享太多状态。
猜你喜欢
  • 1970-01-01
  • 2018-11-05
  • 2015-06-04
  • 2021-06-09
  • 1970-01-01
  • 1970-01-01
  • 2011-07-29
  • 2020-04-11
  • 2019-02-14
相关资源
最近更新 更多