just trying to implement SwiftUI and Combine in my new project. But stuck in this:
func task() -> AnyPublisher<Int, Error> { return AnyPublisher { subscriber in subscriber.receive(Int(arc4random())) subscriber.receive(completion: .finished) } } This produces the following compiler error:
Type '(_) -> ()' does not conform to protocol 'Publisher'
Why?
Update
Actually Random here is just as an example. The real code will look like this:
func task() -> AnyPublisher<SomeCodableModel, Error> { return AnyPublisher { subscriber in BackendCall.MakeApiCallWithCompletionHandler { response, error in if let error == error { subscriber.receive(.failure(error)) } else { subscriber.receive(.success(response.data.filter)) subscriber.receive(.finished) } } } } Unfortunately, I don't have access to BackendCall API since it is private. It's kind of pseudocode but, it pretty close to the real one.