我有點堅持在設計我的iOS應用程序的數據模型。我使用Parse爲具有兩個數據類我的後端服務:Songs
和Ratings
(用戶評級)。當我的應用程序啓動,我目前正在5個獨立的查詢,以解析彌補我的UITableView 5個可能的數據源:數據模型設計
- mainQuery - 每天上傳的歌曲
- topTracksOfTheWeek - 本週最受好評的歌曲
- topTracksOfTheMonth
- topTracksAllTime
- userRatedTracks - 歌曲用戶評爲
解析使得EAS y向查詢添加約束以返回所需的數據。但是,我還需要將userRatedTracks
與每個其他查詢進行比較,並將userRating
嵌入到每個數據源(如果它存在於每個軌道中)。 (這是我學會了如何做有效的位置:Efficient looping in objective-c
我無法搞清楚如何優化或更改這樣的設計有更好的表現上述所有的查詢被稱爲方法getDataSource
被稱爲在viewDidLoad
然後方法assignDataSource
根據用戶選擇哪個數據源來設置表的數據源數組(mainQuery
是默認值)。理想情況下,應用程序啓動時mainQuery
在主線程中獲取,填充表並且其他查詢在後臺線程。但是,這如果用戶選擇查看topTracksOfTheWeek
是低效的。當getDataSource
被調用,topTracksOfTheWeek
查詢不具有優先權。
最簡單的方法去將是我需要他們懶洋洋地加載每個查詢,但我擔心這會阻礙相比最初加載所有數據的應用程序的響應能力。
正如你可能會說,我是一個初學者。我發現作爲初學者的設計模式非常令人沮喪,因爲我總是認爲有比構建代碼更好的方法來構建代碼。有沒有人有多個數據源的設計建議?