Смущен тем, как делиться (или если обмениваться) данными между моделями просмотраIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Смущен тем, как делиться (или если обмениваться) данными между моделями просмотра

Сообщение Anonymous »

Представьте, что у меня есть две группы конечных точек:
Примеры конечных точек в группе 1:
  • /trip/ getall
  • /trip/create
Примеры конечных точек в группе 2:
  • /Startup/get
Для каждой группы конечных точек у меня есть отдельная модель представления.
< P> для/trip/*, у меня есть TripViewModel :

Код: Выделить всё

class TripViewModel: ObservableObject {
let tripService: TripServiceProtocol
private var cancellables = Set()

@Published var trips: [Trip] = []

init(tripService: TripServiceProtocol) {
self.tripService = tripService
}

func fetchAllTrips() {
tripService.getAllTrips()
.receive(on: RunLoop.main)
.sink(receiveCompletion: { data in
print("Received \(data)")
}, receiveValue: {[weak self] data in
// Get the trips and update the view model
self?.trips = data.data?.trips ?? []
}).store(in: &cancellables)
}

func createTrip() {
// call endpoint to create a trip
}

}
и для/стартап/*, у меня есть StartupViewModel :

Код: Выделить всё

class StartupViewModel: ObservableObject {
let startupService: StartupServiceProtocol
private var cancellables = Set()

@Published var trips: [Trip] = []

init(startupService: StartupServiceProtocol) {
self.startupService = startupService
}

func getStartup() {
startupService.getStartup()
.receive(on: RunLoop.main)
.sink(receiveCompletion: { data in
print("Received \(data)")
}, receiveValue: {[weak self] data in
// Get the trips and update the view model
self?.trips = data.data?.trips ?? []
}).store(in: &cancellables)
}

}
Как вы можете видеть, я получаю поездки в обеих моделях просмотра. () В StartupViewModel я хочу также обновить Trips в TripViewModel .
Как это можно сделать? И это даже должно быть сделано?

Подробнее здесь: https://stackoverflow.com/questions/794 ... iew-models
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»