【发布时间】:2014-12-15 01:55:20
【问题描述】:
我目前正在开发一个 iOS 应用程序,该应用程序在 UITableView 中显示 30 个菜单项,然后用户可以在用户点击单元格时显示的详细信息页面上的 5 个启动项中对这些项目进行评分。
现在单元格中当前只是项目的标题,现在我要做的是拥有项目的标题和当前的平均值。标题下方项目的评级。现在我知道如何创建单元格,但是我无法以有效的方式获取电影当前评分的数据。
我目前使用 Parse.com 作为我的后端。现在,当用户提交评分时,它会保存到我在 Parse 上的名为 Ratings 的课程中。并且保存了物品的标题和给出的星数。
现在我正在尝试最有效的方法来获取项目的平均星数并将其放入 UITableViewCell。首先,我考虑只执行一个云代码功能,该功能将查询所有 30 个项目,并像 parse.com 文档 https://parse.com/docs/cloud_code_guide#functions 中所做的那样平均评分。
这里的问题是有 30 个或更多项目,然后每个查询都使用一个 API 请求,然后很快就会上升。所以我已经排除了这个选项。另一种方法是一次只显示 5 个项目,然后在用户向下滚动时加载下一个 5,但用户通常会非常快速地滚动多个项目,并且仍然会查看菜单上的所有 30 个项目,所以这不能解决我的问题。
现在我也有自己的服务器,目前我在其中存储了一些正在服务的项目。我在想是否有办法制作 xml 文件或 JSON,当用户保存项目时,我将其保存到 Parse。然后也保存这个文件。
所以这就是我的想法以及我陷入困境的地方。我会使用 Parse.com Javascript SDK 制作一个 Cloud Code Job,它每天运行一次。我会让这个函数执行一个查询,以检索在最后一天保存到我的 Ratings 类的所有评级。这会给我所有的对象。现在这就是我卡住的地方:如何从 Parse.com SDK 将此文件放到我的服务器上,以及如何将新评级保存到此文件中?
当然,我愿意接受所有其他有关解决此问题并最小化我的 API 请求的方法的建议。我在想也可能使用 Parse.com 托管来托管 xml 或 JSON 文件?
或者只是一种完全不同的方法,我没有提到。
我知道这是一个很长的问题,我已尽力解释,如果您有任何问题,请提出。
提前感谢您的帮助。我真的很感激:)
编辑
我忘记提到的是这些项目每天都在变化,而且我有多家餐厅,每个餐厅都有自己的项目,所以它是 30 * # 家餐厅。因此,当我在表格视图中显示 30 个项目时,我不确定如何在两个查询中获得所有评级(使用额外的类,我是否还需要查询每个项目)?
编辑 2
好的,现在我有一个 NSMutableArray 填充了评级,我从查询中返回。但是假设我的表格视图中有“一”、“二”和“三”项。并且只有“一”和“三”被评级,然后我会为这些项目获得两个评级,如果在我的 cellForRowAtIndexPath: 方法中我就这样做。像
cell.rating = ratingsArray[indexRow.path];
那么项目二的评分应该是三分...
你看到问题了吗?以及如何绕过它?
谢谢
【问题讨论】:
-
这是一个有趣的问题,我也遇到了同样的问题。您可以尝试在 Parse SDK 中实现一个“RatingsAverage”类,其属性为:“menu item”、“nbRatings”、“sumOfStars”。当您为 tableview 加载数据时,您必须执行两个 API 请求,一个用于项目,一个用于“RatingsAverage”,并在您的应用程序中执行配对。 'RatingsAverage' 项目仅在为对象创建新评级时更新,但即使在这种情况下您需要更多 API 请求,您也会从 tableview 显示中保存更多 API 请求。
-
是的,您可能需要另一个类来保存汇总评级。
-
@MichaëlAzevedo 好的,但我想我没有解释问题的一部分,你能看到编辑你有什么机会
标签: javascript ios xml json parse-platform