Jer*_*nJK 4 xcode class ios swift2
我正在 Swift 中构建一个大类,我想将它分布在多个文件中,因为它变得太大而无法有效地工作。它不能被子类化,因为它只是一个具有许多功能的类。(我也许可以稍后优化它并删除双重代码,但我仍然想实现这一点。)
为了更轻松地工作,我想使用扩展将类扩展到多个 Swift 文件中。我已经部分实现了;通过在同一文件中创建扩展来扩展基类。这没有任何问题。
假设基文件是BaseClass.Swift(和类BaseClass),我想将它扩展到BaseClassExtension.swift,我将以下内容放入BaseClassExtension.swift:
extension BaseClass {
func doStuff() -> String {
return myVariable
}
}
Run Code Online (Sandbox Code Playgroud)
在BaseClass.swift 中,我有private var myVariable = "I am a string",但在BaseClassExtension.swift 中出现以下错误:使用未解析的标识符“myVariable”
我尝试了以下几件事:
当我删除privatefrom 时myVariable,错误解决了,但我真的希望它是私有的,因为它可能永远不会直接从类外部访问。
您必须在与您的类相同的文件中创建扩展名,因为 private 只限于此文件。
但是,您可以执行以下操作:
private(set) myVariable: String
Run Code Online (Sandbox Code Playgroud)
所以 getter 可以从你的扩展中访问,但(至少)setter 仍然隐藏在这个范围内。