RxSwift не может распознать метод подписки

Я использую RxSwift для своего приложения iOS.

У меня есть функция, которая возвращает Observable элементов с именем Repository.

func search(query: String) -> Observable<Repository>

По сути, он делает сетевой запрос к github для загрузки репозиториев с учетом поискового запроса.

Теперь, когда я вызываю эту функцию, я следую примеру в документация по RxSwift:

search(queryText).subscribeNext({ repo in
            print(repo)
        })

Но Xcode говорит

Не удается вызвать «subscribeNext» со списком аргументов типа «((Репозиторий) -> ())»

Это странно, потому что Xcode предлагает подать в суд, когда я использую автозаполнение. Я уже пробовал очистить и перестроить. Я получаю ту же ошибку, даже если использую другой метод подписки.

Итак, что с этим не так?


person Daniele Vitali    schedule 24.02.2016    source источник


Ответы (1)


Функция subscribeNext имеет тип

((E) -> Void) -> Disposable

Закрытие, которое вы предоставляете, имеет правильный тип. Может быть, место, которое вы называете subscribeNext, не ожидает Disposable?

person thetrutz    schedule 24.02.2016
comment
Большой! Да, ошибка была совершенно неверной. Этот код был завернут в функцию без возвращаемого типа. Добавление типа Disposable к возврату функции решило проблему. - person Daniele Vitali; 24.02.2016