Pour une raison quelconque, la méthode déléguée n'est pas appelée dans le View Controller principal. Je cherchais d'autres réponses ici, mais aucun d'eux ne m'a été utile. Est-ce que j'ai râté quelque chose? (J'écourté mon code d'origine pour l'amour de la simplicité)La méthode du protocole Swift n'est pas appelée par le délégué
Vue principale du contrôleur:
class VC: ParserDelegate {
var dataSource = Parser()
override func viewDidLoad() {
super.viewDidLoad()
dataSource.delegate = self
dataSourse.loadAndParse()
}
func didReceiveDataUpdates(store: [WeatherModel]) {
print("Delegate method triggered.")
}
}
Protocole:
protocol ParserDelegate: class {
func didReceiveDataUpdates(store: [WeatherModel])
}
Ma classe déléguée:
class Parser {
weak var delegate: ParserDelegate?
func loadAndParse() {
var store = [WeatherModel]()
// Doing something
delegate?.didReceiveDataUpdates(store: store)
}
}
Avez-vous vérifié que le 'delegate' n'est pas nul? – clemens
Il est «nul» pour une raison quelconque. Mais pourquoi c'est «nul», je ne comprends pas. – bohdankoshyrets
Avez-vous défini le délégué? – gnasher729