用戶向其包中添加項目。只要將商品添加到包中,我們就會進行網絡通話以確保該商品仍然可用。網絡通話需要幾秒鐘才能在後臺完成。獲取topVC或Visible VC並檢查特定VC是否在堆棧中
當一個項目被添加到購物車時,它被存儲在一個可以從應用程序的任何地方訪問的單例中。就像這樣:
static let shared = Cart()
var products = [Product]()
當網絡調用返回和產品是不可用的,我們從單中刪除。如果購物車VC在網絡呼叫期間打開,則會導致問題,因爲表視圖需要重新加載。出於這個原因,我們需要檢查可見的VC是否是購物車VC並重新加載表格視圖。我還想檢查CartVC是否在內存中並重新加載表格視圖。因爲如果購物車VC在內存中並且低於另一個VC,那麼它也將具有不良數據,並且當用戶關閉VC時,它們將看到不好的數據。我會怎麼做?
在此標記爲重複項目之前,我沒有檢查其他帖子,沒有一項效果很好。還有很多方法可以做到這一點,我想知道哪些是最快的3.
爲什麼我們需要註銷通知。這有效,但我們不會在應用程序的任何位置註銷我們的通知。這真的很糟糕嗎?所有的通知都在告訴VC重新加載表格視圖 –
這並不算太壞。通過註銷通知時,它不是可見的VC保持表視圖不必要的重新加載。如果你保持註冊風險投資的生命,那麼你不需要在'viewWillAppear'中重新加載表格,但是如果你有很多項目在同一時間回到無法使用的狀態,那麼你可能會看到一個看不見的表現視圖一遍又一遍地重新加載。還要確保通知中的重新調用正在主線程中發生,否則會發生奇怪的事情。 – theMikeSwan
完美。謝謝。我們正在重新加載視圖反正會出現,所以問題甚至不是問題。我只是沒有意識到這一點。我們如何在viewwilldispapear上取消註冊通知? –