我在Swift中构建了一个大类,我想分散在多个文件中,因为它变得太大而无法有效工作。它不能被子类化,因为它是只是一个有许多功能的课程。 (我可能能够稍后优化它,并删除双重代码,但我仍想实现此目的。)在多个文件中使用扩展名传播Swift-class
为了更容易工作我想使用扩展将该类传播到多个Swift文件。我已经部分实现了它;通过在同一文件中创建扩展来扩展基类。这工作没有任何问题。
可以说基本文件是BaseClass.Swift(类BaseClass的),我希望把它扩大到BaseClassExtension.swift,我把BaseClassExtension.swift如下:
extension BaseClass {
func doStuff() -> String {
return myVariable
}
}
在BaseClass.swift我有private var myVariable = "I am a string"
,但在BaseClassExtension.swift我得到以下错误:使用未解决的标识符 'MYVARIABLE'
我曾尝试以下的事情:
- 充分利用扩展公共
- 充分利用BaseClass的公共
- 使公共
- (并且默认他们都默认(内部我猜?))
当我删除private
from myVariable
,错误已解决,但我真的希望它是私人的,因为它可能永远不会从课堂外直接访问。
如果将'扩展BaseClass'更改为'extension BaseClassExtension:BaseClass',会发生什么? – JAL
然后我得到以下错误:'使用未声明的类型'BaseClassExtension'。我认为这是有道理的,因为你不能扩展一个不存在的类。但这不是一个好的解决方案。 – JeroenJK
没关系,我很困惑。你是对的。 – JAL