将Parse对象添加到NSMutableArray的方法是什么?

时间:2015-03-13 10:22:46

标签: ios parse-platform nsmutablearray

我有一个名为“eventnameArray”的可变数组。我想要的是添加对象。要添加的对象来自Parse查询。

这是可变数组:

eventArray = [[NSMutableArray alloc]init];

这是Parse查询,它有效。

PFQuery *query = [PFQuery queryWithClassName:@"Event"];
[query selectKeys:@[@"EventName"]];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (!error) {
        // The find succeeded.
        NSLog(@"Successfully retrieved %lu scores.", (unsigned long)objects.count);
        // Do something with the found objects


       [eventnameArray addObject:[objects valueForKey:@"EventName"]];



        NSLog(@"%@", eventnameArray);

    } else {
        // Log details of the failure
        NSLog(@"Error: %@ %@", error, [error userInfo]);
    }
}];

我怀疑问题出在addObject调用中,该调用未正确执行,或者可能在整个PFQuery结构中。

要在tableviewcell中显示数组,我这样做:

cell.label.text = [self.eventnameArray objectAtIndex: [indexPath row]];

编辑:

我为addObjectsFromArray替换了addObject,如下所示:

[eventnameArray addObjectsFromArray:[objects valueForKey:@"EventName"]];

但我仍然无法让它发挥作用。

编辑2:

我将EDIT 1替换为:

for (NSObject *object in objects){
            NSString *name = [object valueForKey:@"EventName"];
            [eventnameArray addObject:name];
        }

但标签仍然没有显示任何内容。

编辑3:

解决方案只是一个问题或重新加载这样的数据:

[self.tableView reloadData]; 

2 个答案:

答案 0 :(得分:2)

我猜你要找的是用addObject:替换addObjectsFromArray:,因为parse会向你返回一个数组,所以调用valueForKey:@"EventName"会返回一个数组,你想要添加所有的数组这些名称是eventArray

所以:

[eventnameArray addObjectsFromArray:[objects valueForKey:@"EventName"]];

答案 1 :(得分:0)

您可能希望将EventName数组中每个对象的objects添加到eventnameArray,而不是" EventName" objects数组的值。 试试这个:

for (NSObject *object in objects){
    NSString *name = [object valueForKey:@"EventName"];
    [eventnameArray addObject:name];
}
//EDIT: Addition for a complete fix. Reload the tabeview afterwards.
[self.tableView reloadData];