ViewController 中未召集一些代表
Some delegates are not called in ViewController
我有一个 ViewModel,它有一个具有委托的依赖项。我需要那个委托来连接我的 ViewModel。我有 5 个代表,但其中只有 3 个在工作。我试着重新编码,但没有任何反应。
我有这样的基本协议。
protocol PrayerRepositoryDelegate: class {
func dataChanged(arr: [Prayer])
}
这个协议在我的依赖中。当我更改数组中的某些内容时,我调用该函数
var filteredPrayerArray: [Prayer] = [] {
didSet {
delegate?.dataChanged(arr: filteredPrayerArray)
}
}
但是我在第一个控制器的 ViewModel 中没有得到任何响应,但在其他 ViewModel 中得到了该响应。所以我假设依赖项中的委托有效。
我像这样连接 init
中的代表
init(dependency: Dependencies) {
self.dependencies = dependency
super.init()
setupDelegations()
}
private func setupDelegations() {
self.dependencies.prayer.delegate = self
self.dependencies.popesQuotes.delegate = self
self.dependencies.photoQuotes.delegate = self
self.dependencies.divesInMisericordia.delegate = self
self.dependencies.arcibishop.delegate = self
}
其中 3 个工作正常,但另外 2 个看起来没有连接。如您所见,我将其全部连接起来。 No works delegates表示没有调用delegate的函数。
有人遇到同样的问题吗?
好的。我解决了!我只是像这样将 setupDelegations
放入主线程:
private func setupDelegations() {
DispatchQueue.main.async {
self.dependencies.prayer.delegate = self
self.dependencies.popesQuotes.delegate = self
self.dependencies.photoQuotes.delegate = self
self.dependencies.divesInMisericordia.delegate = self
self.dependencies.arcibishop.delegate = self
}
}
我有一个 ViewModel,它有一个具有委托的依赖项。我需要那个委托来连接我的 ViewModel。我有 5 个代表,但其中只有 3 个在工作。我试着重新编码,但没有任何反应。
我有这样的基本协议。
protocol PrayerRepositoryDelegate: class {
func dataChanged(arr: [Prayer])
}
这个协议在我的依赖中。当我更改数组中的某些内容时,我调用该函数
var filteredPrayerArray: [Prayer] = [] {
didSet {
delegate?.dataChanged(arr: filteredPrayerArray)
}
}
但是我在第一个控制器的 ViewModel 中没有得到任何响应,但在其他 ViewModel 中得到了该响应。所以我假设依赖项中的委托有效。
我像这样连接 init
中的代表
init(dependency: Dependencies) {
self.dependencies = dependency
super.init()
setupDelegations()
}
private func setupDelegations() {
self.dependencies.prayer.delegate = self
self.dependencies.popesQuotes.delegate = self
self.dependencies.photoQuotes.delegate = self
self.dependencies.divesInMisericordia.delegate = self
self.dependencies.arcibishop.delegate = self
}
其中 3 个工作正常,但另外 2 个看起来没有连接。如您所见,我将其全部连接起来。 No works delegates表示没有调用delegate的函数。
有人遇到同样的问题吗?
好的。我解决了!我只是像这样将 setupDelegations
放入主线程:
private func setupDelegations() {
DispatchQueue.main.async {
self.dependencies.prayer.delegate = self
self.dependencies.popesQuotes.delegate = self
self.dependencies.photoQuotes.delegate = self
self.dependencies.divesInMisericordia.delegate = self
self.dependencies.arcibishop.delegate = self
}
}