簡體   English   中英

只有在我的 UIView 子類中設置了所有屬性后,如何才能調用函數?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM