11

我不知道为什么,但我的代码在这个 $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)

我有错误

致命错误:调用已删除的方法

4

1 回答 1

1

如果searchTerm是在您的类或其超类中声明的内容,则将其标记为final. 以我的经验,这一直解决这个问题。


我的理论是 Swift 无法确定查找表中的哪个字段$searchTerm正在引用,因此崩溃了。其中,将其标记为final将使其静态调度。我不确定这是否真的是真的,如果有人对这个主题有更多的了解,请发表评论,我会更新我的答案。

于 2020-05-16T10:09:43.380 回答