我有一个名为“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];
答案 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];