11

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

Cœur
  • 37,241
  • 25
  • 195
  • 267
Michał Ziobro
  • 10,759
  • 11
  • 88
  • 143

1 Answers1

1

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.

totocaster
  • 6,243
  • 5
  • 37
  • 46