gpt4 book ai didi

ios - 使用 ReactiveCocoa 4 和 NSButton 计算 bean

转载 作者:行者123 更新时间:2023-11-29 01:26:11 25 4
gpt4 key购买 nike

我有以下内容:

  • 两个有趣的类:一个 ViewController和一个 ViewModel
  • 一个按钮 nsButtonMorePlease:NSButtonviewViewController
  • 一个文本框 nsTextView:NSTextViewview还有

我想要以下行为:

  • 启动程序时,“计数”从 0 开始,并显示在文本框中 nsTextView
  • 当您按下按钮时nsButtonMorePlease ,计数增加 1更新后的计数反射(reflect)在 nsTextView

我想确保:

  • 我使用ReactiveCocoa 4 (这就是重点)
  • 模型类包含 numberOfBeans: MutableProperty<Int>0 开始
  • 该设计纯粹是功能性的或接近功能性的 - 也就是说(如果我理解这个术语),链中的每个链接将鼠标单击事件映射到 MutablePropertynumberOfBeans在 TextView 中响应它,完全没有副作用。

这就是我所拥有的。公平警告:我认为这与工作或编译相差甚远。但我确实觉得也许我想使用 combineLatest 之一, collect , reduce等等。只是不知 Prop 体要做什么。我确实觉得这让一些简单的事情变得非常困难。

class CandyViewModel {

private let racPropertyBeansCount: MutableProperty<Int> = MutableProperty<Int>(0)

lazy var racActionIncrementBeansCount: Action<AnyObject?, Int, NoError> = {
return Action { _ in SignalProducer<Int, NoError>(value: 1)
}
}()

var racCocoaIncrementBeansAction: CocoaAction

init() {
racCocoaIncrementBeansAction = CocoaAction.init(racActionIncrementBeansCount, input: "")
// ???
var sig = racPropertyBeansCount.producer.combineLatestWith(racActionIncrementBeansCount.)
}

}

class CandyView: NSViewController {

@IBOutlet private var guiButtonMoreCandy: NSButton!
@IBOutlet private var guiTextViewCandyCt: NSTextView!



}

最佳答案

class CandyViewModel {

let racPropertyBeansCount = MutableProperty<Int>(0)

let racActionIncrementBeansCount = Action<(), Int, NoError>{ _ in SignalProducer(value: 1) }

init() {

// reduce the value from the action to the mutableproperty
racPropertyBeansCount <~ racActionIncrementBeansCount.values.reduce(racPropertyBeansCount.value) { $0 + $1 }

}

}

class CandyView: NSViewController {

// define outlets

let viewModel = CandyViewModel()


func bindObservers() {

// bind the Action to the button
guiButtonMoreCandy.addTarget(viewModel.racActionIncrementBeansCount.unsafeCocoaAction, action: CocoaAction.selector, forControlEvents: .TouchUpInside)

// observe the producer of the mutableproperty
viewModel.racPropertyBeansCount.producer.startWithNext {
self.guiTextViewCandyCt.text = "\($0)"
}

}

}

关于ios - 使用 ReactiveCocoa 4 和 NSButton 计算 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33984464/

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