Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Xcode 11.4 beta crash on @Published property subscription. What's going on?

I do not know why but my code crashes on this $searchTerm publisher. I have many such publishers in my code and everything else works ok. It only does not work in this new Xcode version and works in previous version. If I commented this line and replace it with _searchTerm.projectedValue it starts working as usuall!

 _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)

I have error

Fatal error: Call of deleted method

like image 655
Michał Ziobro Avatar asked Feb 10 '20 17:02

Michał Ziobro


1 Answers

If searchTerm is something declared in your class or its superclass then mark it as final. In my experience this fixes this issues all the time.


My theory is that Swift can't figure out which field from lookup tables is $searchTerm is referring, hence the crash. Where as, marking it as final will make it dispatch statically. I'm not sure whether this is actually true or not, if anyone has more knowledge on subject please make a comment and I'll update my answer.

like image 109
totocaster Avatar answered Oct 12 '22 19:10

totocaster