0
我有一個上傳項目上傳到AWS S3的所有任務。一旦項目已上載,它觸發一個NSNotification到ViewController動畫的小區(一個嗖嗖左效果),然後從表視圖去除細胞:一次調用多個deleteRowsAtIndexPaths
NSNotificationCenter.defaultCenter().postNotificationName("itemUploaded", object: nil, userInfo: ["item": item])
表視圖數據源是由列表管理這些對象及其狀態。在通知觀察者中,在swish動畫(showExpandingButton)之後,我得到了該項目所屬的單元格,並將狀態設置爲.Uploaded,並將其從tableView數據源中移除。
cell.showExpandingButton({ (completed) in
self.removeCells(item)
})
RemoveCells()然後從表視圖中刪除單元格。但是,我面臨的問題是通知可能幾乎同時被觸發,這意味着表視圖數據源可以比刪除單元格的函數更快地更新。有什麼想法嗎?
你在使用表格視圖動畫嗎?如果你不需要,我認爲使用reloadData即使重複調用也是安全的。如果必須的話,你必須以某種方式合併通知調用,所以從表視圖中刪除單元格只能在runloop循環中調用一次。我認爲你可以看看NSNotificationQueue來幫助做到這一點。 – riadhluke
如果視圖控制器相互關聯,請勿使用'NSNotification'。改爲使用協議/委託或回調關閉。 – vadian
上傳管理器不是視圖控制器,所以我認爲它需要是一個通知。 NSNotificationQueue看起來很有趣 - 將看看這是否是一個選項謝謝。 –