gpt4 book ai didi

ios - 绑定(bind)剂量似乎不适用于 ReactiveCocoa Swift

转载 作者:行者123 更新时间:2023-11-28 12:43:02 25 4
gpt4 key购买 nike

var viewModel = CTCViewModel()
var mainView: CTCMainView {
return self.view as! CTCMainView
}

override func viewDidLoad() {
super.viewDidLoad()

let callButtonEnabledSignal = self.viewModel.rac_valuesForKeyPath("callButtonEnabled", observer: self.viewModel)
callButtonEnabledSignal.setKeyPath("enabled", onObject: self.mainView.callButton, nilValue: false)

self.mainView.callButton.rac_signalForControlEvents(UIControlEvents.TouchUpInside).subscribeNext {
(Void) -> Void in
self.viewModel.callButtonEnabled = !self.viewModel.callButtonEnabled
}
}

当我按下按钮时,self.viewModel.callButtonEnabled 确实得到了更新,但是按钮的 enabled 属性。看起来它们并没有被绑定(bind)。

最佳答案

在您的 callButtonEnabled 属性上添加 dynamic:

class CTCViewModel: NSObject {
dynamic var callButtonEnabled = false
}

因为 rac_valuesForKeyPath 的实现是使用 Objective-C 运行时,编译器在访问 Swift 属性时可以忽略它。您用 dynamic 标记一个属性,让编译器始终使用 Objective-C 运行时。

关于ios - 绑定(bind)剂量似乎不适用于 ReactiveCocoa Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38963864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com