由於某種原因,委託方法在主視圖控制器中未被調用。我在這裏尋找另一個答案,但其中沒有一個對我有幫助。我在這裏錯過了什麼嗎? (I縮短我爲了簡單起見原代碼)代理不會調用Swift協議方法
主視圖控制器:
class VC: ParserDelegate {
var dataSource = Parser()
override func viewDidLoad() {
super.viewDidLoad()
dataSource.delegate = self
dataSourse.loadAndParse()
}
func didReceiveDataUpdates(store: [WeatherModel]) {
print("Delegate method triggered.")
}
}
協議:
protocol ParserDelegate: class {
func didReceiveDataUpdates(store: [WeatherModel])
}
我的委託類:
class Parser {
weak var delegate: ParserDelegate?
func loadAndParse() {
var store = [WeatherModel]()
// Doing something
delegate?.didReceiveDataUpdates(store: store)
}
}
你檢查,該'delegate'不爲空? – clemens
由於某種原因,它是'nil'。但是爲什麼它是'無'我不明白。 – bohdankoshyrets
你是否設置了代表? – gnasher729