在我的課程中,我填充了表視圖並啓用用戶輸入之前,有多個資源Siesta對象,我希望所有這些對象都用數據加載。在Siesta中觀察多個資源
下面的代碼:
var trainees: Resource? {
didSet {
oldValue?.removeObservers(ownedBy: self)
trainees?.addObserver(self).addObserver(statusOverlay, owner: self).loadIfNeeded()
}
}
var points: Resource? {
didSet {
oldValue?.removeObservers(ownedBy: self)
points?.addObserver(self).addObserver(statusOverlay, owner: self).loadIfNeeded()
}
}
var exercises: Resource? {
didSet {
oldValue?.removeObservers(ownedBy: self)
exercises?.addObserver(self).addObserver(statusOverlay, owner: self).loadIfNeeded()
}
}
func resourceChanged(resource: Siesta.Resource, event: Siesta.ResourceEvent) {
tableView.reloadData()
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.trainees = DataManager.sharedInstance.api.trainees
self.points = DataManager.sharedInstance.api.points
self.exercises = DataManager.sharedInstance.api.exercises
}
所以,問題是什麼檢查,一切都已經在resourceChanged FUNC調用reloadData之前被加載的最佳方式。謝謝。
感謝您的精彩答案!我想我在這裏沒有什麼可以使用第一個選項。 – Rhuantavan
不客氣。 ResourceStatusOverlay是初稿,沒有在任何可能的情況下(但只在它被使用的地方)進行過測試,所以請在Github上提交問題,如果它不能令人滿意地工作的話。 –