所以我在这里浏览Apple文档 - Apple Docs
然后我遇到了这个..
public struct TrackedString {
public private(set) var numberOfEdits = 0
public var value: String = "" {
didSet {
numberOfEdits += 1
}
}
public init() {}
}
如何正确添加public private(set)
?如果你能展示一些更加容易的例子/解释,那就太棒了!
答案 0 :(得分:8)
这只是意味着numberOfEdits
的getter是公共的,但setter是私有的。没有更多的东西了。
这种情况下的原因是您可以公开阅读numberOfEdits
,但您只能通过更改value
进行设置。如果它完全public
,那么任何人都可以设置它,但如果它只是可设置的,则didSet
中的value
无法修改它。 private(set)
是两者之间的妥协。
答案 1 :(得分:4)
可以读取此属性,但不能从外部
进行设置