2012-09-13 82 views
0

我有点坚持在设计我的iOS应用程序的数据模型。我使用Parse为具有两个数据类我的后端服务:SongsRatings(用户评级)。当我的应用程序启动,我目前正在5个独立的查询,以解析弥补我的UITableView 5个可能的数据源:数据模型设计

  1. mainQuery - 每天上传的歌曲
  2. topTracksOfTheWeek - 本周最受好评的歌曲
  3. topTracksOfTheMonth
  4. topTracksAllTime
  5. userRatedTracks - 歌曲用户评为

解析使得EAS y向查询添加约束以返回所需的数据。但是,我还需要将userRatedTracks与每个其他查询进行比较,并将userRating嵌入到每个数据源(如果它存在于每个轨道中)。 (这是我学会了如何做有效的位置:Efficient looping in objective-c

我无法搞清楚如何优化或更改这样的设计有更好的表现上述所有的查询被称为方法getDataSource被称为在viewDidLoad然后方法assignDataSource根据用户选择哪个数据源来设置表的数据源数组(mainQuery是默认值)。理想情况下,应用程序启动时mainQuery在主线程中获取,填充表并且其他查询在后台线程。但是,这如果用户选择查看topTracksOfTheWeek是低效的。当getDataSource被调用,topTracksOfTheWeek查询不具有优先权。

最简单的方法去将是我需要他们懒洋洋地加载每个查询,但我担心这会阻碍相比最初加载所有数据的应用程序的响应能力。

正如你可能会说,我是一个初学者。我发现作为初学者的设计模式非常令人沮丧,因为我总是认为有比构建代码更好的方法来构建代码。有没有人有多个数据源的设计建议?

回答