【发布时间】:2015-10-10 09:39:23
【问题描述】:
我正在构建一个 iOS 应用程序,我想在其中为我的模型创建一个协议(据我了解,这相当于 java 接口),用于单元测试目的。
在 Java 中,您通常希望将值封装在模型中,并使其只能通过 getter 和 setter 访问。
我如何确保在 Swift 中使用协议进行这种封装,而我不能对属性使用 private 关键字。
我的模型设置如下:
class model {
private var property: Int = 5
func getProperty() -> Int {
return property
}
func setProperty(newValue: Int) {
self.property = newValue
}
}
我希望我的协议看起来像这样:
protocol modelProtocol {
private var property: Int { get set }
}
我的问题是我不能将我的属性声明为私有,这只是 Swifts 访问控制中的一件事(我已经读过它们有私有、内部和公共),你没有那么多使用私有属性或者是有没有类似 Java 处理接口和私有变量的方式?
(注意:如果重要的话,我使用的是 Xcode 7 和 swift 2.0)
【问题讨论】: