Сбой бета-версии Xcode 11.4 при подписке на свойство @Published. Что происходит?

Я не знаю почему, но мой код дает сбой на этом издателе $searchTerm. У меня в коде много таких издателей и все остальное работает нормально. Это не работает только в этой новой версии Xcode и работает в предыдущей версии. Если я прокомментирую эту строку и заменю ее на _searchTerm.projectedValue, она начнет работать как обычно!

 _searchTerm.projectedValue
    //$searchTerm
        .debounce(for: .milliseconds(350), scheduler: DispatchQueue.global())
        .flatMap { term in
            self.search(by: term)
        }
        .print("searching")
        .receive(on: DispatchQueue.main)
        .assign(to: \.results, on: self)
        .store(in: &disposables)

у меня ошибка

Фатальная ошибка: вызов удаленного метода


person Michał Ziobro    schedule 10.02.2020    source источник
comment
Пожалуйста, отправьте отчет об ошибке в Apple, если вы еще этого не сделали. Спасибо!   -  person matt    schedule 02.03.2020
comment
то же самое! вы подали отчет об ошибке или rdar. Вылетает только с Xcode 11.4   -  person Christian Anchor Dampf    schedule 30.03.2020
comment
Спасибо за совет, как обойти это, работает как шарм! Случается и с XCode 11.4.1.   -  person ccwasden    schedule 17.04.2020
comment
Многие сталкиваются с этим, начиная с Xcode 11.4. Я подал отчет об ошибке. Но нет (сюрприз-сюрприз...) отзывов пока нет   -  person Christian Anchor Dampf    schedule 18.04.2020
comment
См. также stackoverflow.com/questions/60464226/   -  person matt    schedule 02.05.2020


Ответы (1)


Если searchTerm что-то объявлено в вашем классе или его суперклассе, пометьте его как final. По моему опыту, это постоянно решает эту проблему.


Моя теория заключается в том, что Swift не может понять, какое поле из таблиц поиска имеет в виду $searchTerm, отсюда и сбой. Где, если пометить его как final, он будет отправляться статически. Я не уверен, правда это на самом деле или нет, если у кого-то есть больше знаний по этому вопросу, напишите комментарий, и я обновлю свой ответ.

person totocaster    schedule 16.05.2020