我有一個顯示消息列表的UITableViewController。我使用CoreData和NSFetchedResultsController來兌現/存儲與單元格對應的每個對象。我想知道什麼時候刷新表以與服務器同步。一方面,我只能手動刷新,但我希望表格視圖自動同步。另一方面,每當表格視圖出現時我都可以刷新,但這看起來很浪費。 在這種情況下,常規方法是什麼?每次收到推送時都使用推送通知並進行刷新?但是,如果用戶禁用推送通知呢?iOS:UITableViewController - 什麼時候刷新(設計)?
回答
我假設你說「服務器」時,你說的是互聯網上的一些遠程服務器。在這種情況下,如果在服務器上頻繁更新用戶需要/想要的內容,則在出現表格視圖時刷新並非不合理(或者更準確地說,詢問服務器以查看是否需要刷新並且只需下載更新而不是重新下載所有內容,只有在有新數據時才刷新......這取決於服務器的性質)。但是,如果您執行此類邏輯,則需要異步執行此操作,以便在後臺檢查更新時不會延遲用戶體驗。但是,如果用戶很可能需要/希望更新數據,請將它們省去點擊刷新按鈕。想想郵件程序:你想看看現有的電子郵件,但是你可能希望程序每次提取「電子郵件列表」tableview時檢查郵件。
如果服務器更新不頻繁和/或您的服務器協議有點慢,那麼您可能會放入一些混合的「當tableview僅在最後一次刷新超過x分鐘前纔出現時刷新」。如果您進行數據刷新的這種有條件檢查,那麼您可能必須提供一個用戶界面以允許用戶手動刷新,查看最後一次刷新的時間,等等。想想公司新聞訂閱源哪裏不太可能成爲大量的分鐘更新,而是每日或每週更新。
此外,我之前的一些評論暗示,您可能想確保您在後臺執行服務器更新,也可能是主動進行服務器更新。 (例如,您可能希望在應用程序啓動後立即啓動對後臺服務器數據的更新檢查,減少用戶轉至特定的tableview時的延遲)。或者,當用戶仍然處於問題的桌面視圖中時(例如,您正在查看正在進行的體育賽事的得分摘要),您可能會觸發對更新的異步檢查。這一切都取決於服務器數據更改的性質,您可以訪問的服務器接口類型以及用戶的期望。無論如何,如果你能阻止它,不要用惱人的紡紗者或類似的東西阻擋用戶界面。
因此,不幸的是,您的問題沒有簡單的答案,因爲答案取決於(a)服務器能夠多快地響應有關數據更新存在的查詢,並隨後下載更新; (b)服務器數據更改的頻率; (c)用戶在多大程度上尋找更新的數據(沒有用戶感覺必須一直點擊刷新按鈕的用戶體驗)。
- 1. 什麼時候刷新BufferedWriter
- 2. 什麼時候應該刷新osgi?
- 3. 什麼時候刷新.pyc文件?
- 4. 什麼時候需要在swing組件上調用revalidate()來刷新,什麼時候不刷新?
- 5. 什麼時候更新DateTime.Now?
- 6. 什麼時候刷新並清除提交?
- 7. PHP會話到期 - 它什麼時候刷新?
- 8. 什麼時候通過itextsharp將內容刷新到PDF文件?
- 9. 什麼時候linux設置計算機的正確時間?
- 10. 什麼時候使用設計時間值初始化控件?
- 11. 什麼時候更新和edittext更新?
- 12. 什麼時候應該在Asp.net MVC(設計問題)中創建新的Controller類?
- 13. 什麼時候可以使用多個設計模型?
- 14. 什麼時候可以使用扁平DB設計
- 15. 什麼時候應該使用構建器設計模式?
- 16. 什麼時候應該設計我的UINavigationBar?
- 17. 什麼時候發佈UML設計器8?
- 18. 什麼時候由ADFS設置relyingpartytrustid?
- 19. 什麼時候JPA設置@GeneratedValue @Id
- 20. 什麼時候在MVC4中設置User.Identity.Name
- 21. 什麼時候在Java中設置mutate?
- 22. 你什麼時候使用新方法?
- 23. SCCM什麼時候下載更新
- 24. CASE,什麼時候,然後在更新
- 25. 什麼時候應該更新UI?
- 26. 什麼時候WPF UI更新完成
- 27. Heroku dynos什麼時候重新啓動?
- 28. .csproj文件什麼時候更新?
- 29. 什麼時候'System.ExecutionEngineException'ocurs?
- 30. 刷新倒計時