Итак, недавно я начал пытаться включить ReactiveSwift в свой проект, и я не могу понять, почему эта часть моего кода дает мне ошибку компиляции, когда я пытаюсь установить свойство с помощью оператора ‹~.
Итак, вот что у меня есть до сих пор,
let bodyDetailViewModel = MutableProperty<BodyDetailViewModel?>(nil)
bodyManager = BodyManager()
let bodyDetailReadySignal = Signal.combineLatest(bodyManager.bodypartName.signal,
bodyManager.bodypartDetail.signal,
bodyManager.bodypartThumbnail.signal,
bodyManager.bodypartHighlighted.signal)
bodyDetailViewModel <~ bodyDetailReadySignal.map {
if $3 == nil { return nil } // this line says Nil is incompatible with BodyDetailViewModel
return BodyDetailViewModel(name: $0, detail: $1, thumbnail: $2, highlighted: $3!)
}
Итак, как вы можете видеть выше, строка, которая дает мне ошибку, смущает меня, потому что я установил ее как необязательное свойство, поэтому я не понимаю, почему она говорит, что значение nil несовместимо. Также, если есть лучшие способы сделать это, пожалуйста, дайте мне знать, так как мне трудно найти ресурсы для reactivecocoa для быстрого
map
, чтобы явно показать, что оно возвращаетBodyDetailViewModel?
. - person jjoelson   schedule 15.06.2017