繁体   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