Sobes.tech
Junior — Middle

Jak informacje uzyskane z interaktora są przekazywane do prezentera?

sobes.tech AI

Odpowiedź od AI

W architekturze VIPER, interaktor odpowiada za logikę biznesową i pobieranie danych, podczas gdy prezenter jest odpowiedzialny za przygotowanie danych do wyświetlenia w widoku.

Informacje z interaktora są zwykle przekazywane do prezentera za pomocą protokołu (interfejsu), który prezenter implementuje. Interaktor wywołuje metody tego protokołu, przekazując uzyskane dane lub wyniki operacji. W ten sposób prezenter otrzymuje dane i aktualizuje stan interfejsu.

Przykład:

protocol InteractorOutput: AnyObject {
    func didFetchData(_ data: [String])
}

class Interactor {
    weak var output: InteractorOutput?

    func fetchData() {
        // Pobieranie danych
        let data = ["item1", "item2"]
        output?.didFetchData(data)
    }
}

class Presenter: InteractorOutput {
    func didFetchData(_ data: [String]) {
        // Przetwarzanie danych i aktualizacja widoku
        print("Dane otrzymane: \(data)")
    }
}

W ten sposób, interaktor przekazuje dane prezenterowi za pomocą delegata (output).