【发布时间】:2019-11-28 20:06:33
【问题描述】:
我有一个 swift 类,其中包含大约 10 个不同的功能。它有 400 多行代码,需要分解。我想将一些功能放在不同的文件中。做这个的最好方式是什么?也许是继承?
【问题讨论】:
-
类和这 10 个函数的本质是什么?知道这将帮助我们知道我如何适合将它们分开。为什么 10 个函数平均每个函数有 40 行? (渴望一个功能真是太棒了。)
我有一个 swift 类,其中包含大约 10 个不同的功能。它有 400 多行代码,需要分解。我想将一些功能放在不同的文件中。做这个的最好方式是什么?也许是继承?
【问题讨论】:
您可以创建不同的文件,然后在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 { }
【讨论】:
UICollectionViewDelegate、UICollectionViewDataSource 等完全拆分为单独的类。扩展使您的 VC 看起来更小,但它仍然是一个巨大的单体类,做了太多事情,在不同的不相关函数集之间共享太多状态。