问题描述
知道如何从 didSet 中返回 UIView 吗?
我有一个返回 UIView 的方法。 我需要观察 Int 并在 Int 更改时返回 UIView。我有一个 didSet 观察者集,但是,在尝试返回 UIView 时出现错误。
感谢任何帮助!谢谢。
func newUIView() -> UIView {
var newUIView = UIView()
return newUIView
}
var observingValue: Int = someOtherValue {
didSet {
//Xcode complains whether I use return or not
return func newUIView()
}
}
解决方法
您在评论中说:
我想我的困难在于如何观察该值并相应地对其做出反应(更新 UI)
观察者是做到这一点的绝佳方式。但是你不会返回某些东西;你调用的东西。这是 Swift iOS Cocoa 编程中非常非常常见的模式:
var myProperty : MyType {
didSet {
self.updateUI()
}
}
func updateUI() {
// update the UI based on the properties
}
在 didSet
代码运行时,myProperty
已经改变,因此方法 updateUI
可以获取它并使用它来更新接口。
你问的没有任何意义。
didSet 是您添加到实例变量中的一段代码,当有人更改该变量的值时会调用该代码块。没有地方可以归还任何东西。
如果您需要更改实例变量并返回视图的代码,则需要编写一个函数:
func updateObservingValue(newValue: Int) -> UIView {
observingValue = newValue
return newUIView()
}