web-dev-qa-db-ja.com

@PublishedプロパティサブスクリプションでXcode 11.4ベータがクラッシュします。どうしたの?

理由はわかりませんが、この$ 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)

エラーがあります

致命的なエラー:削除されたメソッドの呼び出し

11
Michał Ziobro

searchTermがクラスまたはそのスーパークラスで宣言されている場合、finalとしてマークします。私の経験では、これはこの問題を常に修正しています。


私の理論は、Swiftはルックアップテーブルのどのフィールドが$searchTermは参照しているため、クラッシュします。 finalとしてマークすると、静的にディスパッチされます。これが実際に真実であるかどうかはわかりません。もし誰かが主題についてより多くの知識を持っている場合はコメントを書き込んでください。答えを更新します。

1
totocaster