У меня проблемы с BehaviorRelay
, который имеет тип протокола, и использую его на конкретных типах. Вот мой код:
protocol Item {
var title: { get }
}
struct Can: Item {
let title = "Can"
}
let canRelay = BehaviorRelay<Can?>(value: nil)
func handle(item: BehaviorRelay<Item?>) {
// do something with item here
}
handle(item: canRelay) // can't do this?
Я предполагал, что смогу вызвать handle(item:)
, но это не так, потому что аргументы не совпадают. Я понимаю, что они не совпадают, но Can
- это тип Item
, так разве это не возможно?