在Parse Cloud Code中循环使用用户信息

时间:2015-02-08 17:53:47

标签: objective-c parse-platform

我只是熟悉Parse的云代码,但是在基本任务上遇到了一些麻烦:为登录用户循环遍历一个数组字段(称为“newsFeed”)。这就是我所拥有的:

解析代码:

Parse.Cloud.define("unseenItems", function(request, response) {

  // Get list of all news items for current user
  var user = Parse.User.current();
  var newsFeed = user.get("newsFeed");

  // Loop through news items and count number of unseen items
  // ("unseen" is a key for the array object, the value is 0 or 1)
  var sum = 0;
  for (var i = 0; i < newsFeed.length; i++) {
    sum += newsFeed[i].get("unseen"); 
  }
  console.log(sum);

  // Return sum of unseen items
  response.success(sum);

});

数据结构

newsFeed是一系列词典,下面是一个示例:

[{"date":<date info>,
  "text":"Sample text",
  "seen":0},
  {"date":<date info>,
  "text":"More sample text",
  "seen":1}]

Objective-C代码

[PFCloud callFunctionInBackground:@"unseenItems"
                   withParameters:@{}
                            block:^(NSNumber *result, NSError *error) {
                                if (!error){
                                    self.unseenItems=[result intValue];
                                }
                            }];

这是我在XCode中遇到的错误:Error: TypeError: Object #<Object> has no method 'get' at main.js:84:24 (Code: 141, Version: 1.5.0)

关于从这里去哪里的任何指示都会很棒。谢谢你的阅读!

2 个答案:

答案 0 :(得分:0)

看起来你说newsFeed是一个整数数组,比如[0, 1, 0, 0, 1]。如果是这样,那么修复很容易

sum += newsFeed[i];   // no "get" needed on an array of ints

答案 1 :(得分:0)

好的,错误只是基本的JavaScript使用情况。要进入数组内部的字典,这是有用的:

 for (var i = 0; i < newsFeed.length; i++) {
    sum += newsFeed[i]["unseen"]; 
  }