有没有办法限制在类中设置属性而不是函数?以下是用于说明问题的代码:
import UIKit
class MyViewController: UIViewController {
var property: Int?
func setProperty(_ property: Int?, animated: Bool,
withColor color: UIColor,
andSomethingElse something: Any) {
// only allow property to be set here
self.property = property
// ...
}
override func viewDidLoad() {
super.viewDidLoad()
// What I'd like to achieve is deny following...
property = 42
// ...and somehow force to set value exclusively via function
setProperty(42,
animated: true,
withColor: .green,
andSomethingElse: LongCat())
}
}
答案 0 :(得分:1)
我不相信有任何语言机制允许你这样做。您可以将private
用于其他不使用该类的类。
如果你关心那么多,你可以为该属性制作一个包装类,但我相信这比它的价值更麻烦。
通常,这是一个让名为_property
的属性声明它是私有的或在上面添加注释的好地方。