0

我是编程新手。现在我正在使用 Swift 和 Parse(用于后端)开发我的第一个应用程序。我的应用程序用于调查以了解政治家的信心评级。该评级等于那些在最后一天投赞成票的百分比。我想在云上做所有的数学运算,然后将结果(一个数字)发送给客户。所以我研究了 Parse 上的文档,但不太确定该怎么做。以下是我的试用(虽然不成功),希望您能帮助我找到并解决问题。

所以我有score课(表)。单个score对象如下所示:

{
  "objectID": 12eroi87,
  "vote": 1, // or 0
  "createdAt": Nov 5, 2014, 10:35 // Date
}

现在我必须构建一些云函数来完成所有的数学运算。

Parse.Cloud.define("confidenceRating", function(request, response) {
    var query = new Parse.Query("score");
    query.equalTo("vote", request.params.vote);
    query.find({
        success: function(results) {
            var sum = 0;
            for (var i = 0; i < results.length; ++i) {
                sum += results[i].get("vote");
            }
            response.success(100 * sum / results.length);
        },
        error: function() {
            response.error("something went wrong");
        }
    });
});

我知道上面的代码有些混乱((不知道如何在最后一天削减选票。最后我不知道如何用 Swift 调用函数。

希望我能帮上忙!如果您也提供一些有用的链接,我将不胜感激。

4

2 回答 2

0

为了获取特定日期的记录,您需要按日期过滤,下面可能会根据您的需要进行一些调整:

var transformedDate = moment(request.params.selectedDate);
var transformedDate2 = moment(request.params.selectedDate).add(1, 'days');
//console.log("transformedDate: " + transformedDate.format());
//console.log("transformedDate2: " + transformedDate2.format());
//console.log("selectedDate: " + selectedDate);
var query = new Parse.Query("score");
query.greaterThan("createdAt", new Date(transformedDate.format("YYYY-MM-DDT00:00:00.000Z")));
query.lessThan("createdAt", new Date(transformedDate2.format("YYYY-MM-DDT00:00:00.000Z")));

我确实解决了与filter-on-own-date-fields-no-working-and-or-wrong-date-format-used 中的日期类似的问题

您的朋友将是 moment.js 模块,请小心使用最新的momentjs版本以避免出现问题,因为使用-the -moment-module时遇到问题

于 2015-01-06T02:22:26.803 回答
0

看这里在 Swift 中调用云代码函数的例子: Calling Parse cloud functions very slow on iOS in mobile network

于 2014-11-29T20:12:22.287 回答