У меня есть следующий код
protocol NamedOption {
var optionTitle: String { get }
}
struct DebugOption: NamedOption {
let optionTitle: String
let debugViewControllerType = UIViewController.self
}
func testFunk<T: Sequence>(d: Observable<T>) where T.Element == NamedOption {
}
func bindFullResultsRx() {
let dd: Observable<[DebugOption]> = self.dataModel.debugOptions // this is defined and properly assigned earlier
testFunk(d: dd)
}
и в строке, где я звоню testFunk
Xcode выдает мне следующую ошибку:
Тип выражения '()' isдвусмысленно без контекста
Понятия не имею, почему это происходит :( До сих пор я мог заставить его работать, изменив ограничения на testFunk
на это:
func funk<T: NamedOption>(d: Observable<[T]>) {
}
которая кажется мне более строгой, чем версия вверху. Кто-нибудь знает, как заставить ее работать с T: Sequence
?
Версия Xcode - 9.4, версия Swift - 4.1.