import UIKit
import Combine
class ViewController: UIViewController {
@IBOutlet weak var allowMessageSwitch: UISwitch!
@IBOutlet weak var sendButton: UIButton!
@IBOutlet weak var messageLabel: UILabel!
@Published var canSendMessages: Bool = false
@Published var newMsg: String = ""
private var switchSubscriber: AnyCancellable?
private var btnSubscriber: AnyCancellable?
override func viewDidLoad() {
allowMessageSwitch.isOn = false
super.viewDidLoad()
setupProcesscingChain()
}
func setupProcesscingChain() {
switchSubscriber = $canSendMessages.receive(on: DispatchQueue.main).assign(to: \.isEnabled, on: sendButton)
btnSubscriber = $newMsg.receive(on: DispatchQueue.main).assign(to: \.text, on: messageLabel)
}
@IBAction func didSwitch (_ sender: UISwitch) {
canSendMessages = sender.isOn
}
@IBAction func sendMessage( _ sender: Any) {
}
}
Я получаю сообщение об ошибке в
btnSubscriber = $newMsg.receive(on: DispatchQueue.main).assign(to: \.text, on: messageLabel)
Сообщение об ошибке:
Тип выражения неоднозначен без дополнительного контекста
I не понимаю, почему label не работает как Switcher (bool)
Я предполагаю, что это потому, что \.isEnabled
не является обязательным, а \.text
является необязательным .. ??
как я могу сделать эта работа с тем же форматом. это для практики и для понимания работы комбайна .. помогите пожалуйста