Пытался решить задачу с этапа через Combine
, но застрял на ошибке:
Value of type 'Published<[User]>.Publisher' has no member 'store'
Исходный код:
import Combine
import Foundation
// MARK: Main model from API
struct User: Decodable, Identifiable {
let id: UUID
let isActive: Bool
let name: String
let age: Int
let company: String
let email: String
let address: String
let about: String
let registered: Date
let tags: [String]
let friends: [Friend]
}
// MARK: - Friend array API
struct Friend: Decodable {
let id: String
let name: String
}
final class ViewModel: ObservableObject {
@Published var model = [User]()
private var subscriptions: Set<AnyCancellable> = []
// Error: Value of type 'Published<[User]>.Publisher' has no member 'store'
init() { $model.store(in: &subscriptions )}
}
extension ViewModel {
// MARK: - Make request to API
func fetch() -> AnyPublisher<User, Error> {
guard let mainURL = URL(string: "https://www.hackingwithswift.com/samples/friendface.json") else {
fatalError("404: Not found")
}
return URLSession.shared.dataTaskPublisher(for: mainURL)
.map(\.data)
.decode(type: User.self, decoder: JSONDecoder())
.receive(on: RunLoop.main)
.eraseToAnyPublisher()
}
}
Не понимаю, где мне нужно создать издателя?