[英]How can I call a function only after all properties have been set in my UIView subclass?
我有一个 UIView 子类,有点像这样:
class AView: UIView {
var aString = "A String"
var aBool = true
override func didMoveToSuperview() {
func doSomethingWithTheString() {
if aBool {
doSomething(withString: aString)
}
}
}
}
然后我将一个 UIView 添加到故事板并将它的类设置为AView
。 我将它链接到我的视图控制器并执行以下操作:
@IBOutlet weak var aView: AView!
override func viewDidLoad() {
aView.aBool = false
aView.aString = "Another String"
}
问题是,当doSomethingWithTheString()
被调用时aBool
仍然是true
并且 aString 仍然是"A String"
,即使我在viewDidLoad()
更改了它们。
那么在AView
中是否有某个地方可以放置doSomethingWithTheString()
以便仅在设置所有属性时才调用它? 我希望didMoveToSuperview()
能解决问题,但显然现在还为时过早。
我想在属性的 setter 中调用它,但我不知道将设置哪些属性,哪些将保留默认值,并且只能在设置最后一个属性时调用它。
将 aString 和 aBool 放入字典(aDictionary)中,然后声明
var aDictionary: NSDictionary? {
didSet{
doSomethingWithTheString()
}
}
当然改变一下 doSomethingWithTheString() 来处理字典
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.