Sobes.tech
Junior — Middle

Чӣ гуна маълумот аз интерактор ба презентер интиқол дода мешавад?

sobes.tech AI

Ҷавоб аз AI

Дар архитектураи VIPER, интерактор масъул аст барои мантиқи бизнес ва гирифтани маълумотҳо, дар ҳоле ки презентер масъул аст барои омода кардани маълумотҳо барои намоиш дар view.

Маълумот аз интерактор одатан тавассути протокол (интерфейс) ба презентер интиқол дода мешавад, ки презентер онро иҷро мекунад. Интерактор методҳои ин протоколро даъват мекунад, додаҳои гирифташударо ё натиҷаҳои амалҳоро мегузарад. Бо ин роҳ, презентер маълумотҳоро мегирад ва ҳолати интерфейсро нав мекунад.

Масалан:

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

class Interactor {
    weak var output: InteractorOutput?

    func fetchData() {
        // Гирифтани маълумот
        let data = ["item1", "item2"]
        output?.didFetchData(data)
    }
}

class Presenter: InteractorOutput {
    func didFetchData(_ data: [String]) {
        // Коркарди маълумот ва навсозии View
        print("Маълумотҳо гирифта шуданд: \(data)")
    }
}

Тавре ки мебинем, интерактор тавассути делегат (output) маълумотҳоро ба презентер мегузарад.