Поток 1 EXC_BAD_ACCESS (код = 2, адрес = 0x7ffeeb1aeff8)

Rob13 спросил: 03 ноября 2018 в 09:42 в: swift

Я пытаюсь выучить VIPER. Я следовал этому уроку: VIPER Tutorial. У меня есть эти Interactor и Presenter.

class PPresenter: ViewToPresenterProtocol {    var view: PresenterToViewProtocol?      var router: PresenterToRouterProtocol? = PRouter()    var interactor: PresenterToInteractorProtocol? = PInteractor()    func initiateFetch() {
        interactor?.fetchMatches()
    }    func showMatchScreen(navigationC: UIViewController) {
        router?.pushToMatchDetailScreen(navigationC: navigationC)
    }
}extension PPresenter: InteractorToPresenterProtocol {
    func matchFetched(match: MatchDetails?, banner: Banner?) {
        print(match!)        print(banner!)
    }    func matchFetchError() {
        //TODO
    }
}class PInteractor: PresenterToInteractorProtocol {    var presenter: InteractorToPresenterProtocol? = PPresenter()    var live: Live?    var upcoming: Upcoming?    var banners: Banner?    func fetchMatches() {
        let parameters = ["api_token" : Constants.USER_INFO["api_token"].rawValue,"player_id" : Constants.USER_INFO["player_id"].rawValue]        ServiceHelper.sharedInstance.sendRequest(path: "get-predictor", params: parameters, showSpinner: true) { (response, error) in            if let error = error {
                print("Unable to fetch match listing",error.localizedDescription)                return
            } else {
                guard let obj = try? JSONDecoder().decode(MatchDetails.self, from: response.rawData()) else { self.presenter?.matchFetchError(); return }                guard let bannerObj = try? JSONDecoder().decode(Banner.self,from: response.rawData()) else {self.presenter?.matchFetchError(); return }                self.presenter?.matchFetched(match: obj, banner: bannerObj)
            }
        }
    }
}

Теперь, что здесь происходит, у меня работает маршрутизатор, представление идет, он вызывает докладчик, докладчик вызывает интерактор Interactor успешно вызывает API и получает данные, и теперь пришло время вернуть данные, полученные от Interactor, в Presenter, и здесь он постоянно выдает эту ошибку. И я понятия не имею, почему кто-то может помочь?

0 ответов