Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 数据模型设计_Iphone_Objective C_Ios_Uitableview_Data Modeling - Fatal编程技术网

Iphone 数据模型设计

Iphone 数据模型设计,iphone,objective-c,ios,uitableview,data-modeling,Iphone,Objective C,Ios,Uitableview,Data Modeling,我为我的iOS应用程序设计数据模型时有点卡住了。我使用的后端服务有两个数据类:歌曲和评级(用户评级)。当我的应用程序启动时,我目前正在进行5个单独的查询以进行分析,这5个查询构成了我的UITableView的5个可能的数据源: mainQuery-每日上传歌曲 topTracksOfTheWeek-本周收视率最高的歌曲 topTracksOfTheMonth 最佳跟踪时间 userRatedTracks-用户分级的歌曲 Parse使向查询添加约束以返回所需数据变得容易。但是,我还需要将userR

我为我的iOS应用程序设计数据模型时有点卡住了。我使用的后端服务有两个数据类:
歌曲
评级
(用户评级)。当我的应用程序启动时,我目前正在进行5个单独的查询以进行分析,这5个查询构成了我的UITableView的5个可能的数据源:

  • mainQuery-每日上传歌曲
  • topTracksOfTheWeek-本周收视率最高的歌曲
  • topTracksOfTheMonth
  • 最佳跟踪时间
  • userRatedTracks-用户分级的歌曲
  • Parse使向查询添加约束以返回所需数据变得容易。但是,我还需要将
    userRatedTracks
    与其他每个查询进行比较,并将
    userRating
    嵌入每个数据源(如果每个曲目都有)。(我在这里学到了如何有效地做到这一点:

    我无法确定如何优化或更改此设计以获得更好的性能。上述所有查询都在方法
    getDataSource
    中调用,该方法在
    viewDidLoad
    中调用,然后方法
    assignDataSource
    根据用户选择的数据源设置表的数据源数组(
    mainQuery
    为默认值)。理想情况下,在应用程序启动时,
    mainQuery
    在主线程上获取,填充表,其他查询在后台线程中获取。但是,如果用户选择查看
    topTracksOfTheWeek
    ,这将是低效的。当调用
    getDataSource
    并且
    topTracksOfTheWeek
    查询时有优先权

    最简单的方法是在我需要的时候懒洋洋地加载每个查询,但我担心与最初加载所有数据相比,这会阻碍应用程序的响应


    正如你可能知道的,我是一个初学者。作为一个初学者,我发现设计模式非常令人沮丧,因为我总是认为有一种比我现在做的更好的方法来构造代码。有人对使用多个数据源的设计有什么建议吗?

    你是否将结果加载到核心数据中?你可以在后台MOC并保存到核心数据。当用户启动时,它会提取本地结果,直到新的解析结果被刷新,并显示一个指示器,以便用户知道数据正在被刷新。查看Ray Wenderlichs教程,这几乎正是执行此操作所需的。甚至使用解析