将 Parse 对象添加到 NSMutableArray 中的方法是什么?
What is the way to add Parse objects into a 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]];
编辑:
我将 addObject 替换为 addObjectsFromArray,如下所示:
[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];
我猜你要找的是用 addObjectsFromArray:
替换 addObject:
因为解析 returns 一个数组给你所以调用 valueForKey:@"EventName"
将 return 一个数组,你想将所有这些名称添加到你的 eventArray
.
所以:
[eventnameArray addObjectsFromArray:[objects valueForKey:@"EventName"]];
您可能想将 objects
数组中每个对象的 EventName
添加到您的 eventnameArray
,而不是 objects
的 "EventName" 值大批。
试试这个:
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];
我有一个名为 "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]];
编辑:
我将 addObject 替换为 addObjectsFromArray,如下所示:
[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];
我猜你要找的是用 addObjectsFromArray:
替换 addObject:
因为解析 returns 一个数组给你所以调用 valueForKey:@"EventName"
将 return 一个数组,你想将所有这些名称添加到你的 eventArray
.
所以:
[eventnameArray addObjectsFromArray:[objects valueForKey:@"EventName"]];
您可能想将 objects
数组中每个对象的 EventName
添加到您的 eventnameArray
,而不是 objects
的 "EventName" 值大批。
试试这个:
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];