我最近才开始使用Swift进行编码,而且我遇到了一个问题。对于我的几个快速类我需要一个撕裂机制,我想知道实现它的最佳方法是什么。让我解释一下:我需要为50多个课程中的3个实现扩展。由于代码很少被用户调用,我正在考虑撕掉而不是子类来改善内存占用。出于复杂的体系结构原因,无论如何,子类都不实用。所以我的想法如下:让我的三个班级主持一个TearOff?属性,仅在调用扩展的第一个方法时实例化,并从我的类调用tearoff,以便共享代码(非常复杂)。骨架:
class foo1 {}
class foo2 {}
class foo3 {}
class TearOff { func method() { blablablabla } }
extension foo1 { func method() {
if nil == tearoff {
tearoff = TearOff()
}
tearoff!.method()
}
extension foo2 { func method() {
if nil == tearoff {
tearoff = TearOff()
}
tearoff!.method()
}
extension foo3 { func method() {
if nil == tearoff {
tearoff = TearOff()
}
tearoff!.method()
}
我的问题是扩展程序只能托管方法,而不能托管属性,所以我不能将撕裂声明为TearOff?在三个扩展中。并且直接在foo1 foo2和foo3中声明它,尽管总是可行的,但实际上并不是最理想的。
感谢您提供的任何帮助。非常感谢!