[英]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.