Ios 使用PFQuery检索所有列

Ios 使用PFQuery检索所有列,ios,parse-platform,pfquery,Ios,Parse Platform,Pfquery,我正在我的新应用程序中使用parse框架,并试图从其中一个表中获取数据。Parse表包含20列,其中近15列为字符串类型。下面是获取的代码 PFQuery *query=[PFQuery queryWithClassName:@"Product"]; [query setLimit:20]; [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { if (!error) { for (P

我正在我的新应用程序中使用parse框架,并试图从其中一个表中获取数据。Parse表包含20列,其中近15列为字符串类型。下面是获取的代码

PFQuery *query=[PFQuery queryWithClassName:@"Product"];
[query setLimit:20];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {

    for (PFObject *obj in objects) {
        NSMutableDictionary *dict=[[NSMutableDictionary alloc]init];
        [dict setValue:obj[@"GTIN_CD"] forKey:@"GTIN_CD"];
        [dict setValue:obj[@"GTIN_NM"] forKey:@"GTIN_NM"];

        [self.arrProducts addObject:dict];  
    }

    [self.tblSearchResult setDelegate:self];
    [self.tblSearchResult setDataSource:self];
    [self.tblSearchResult reloadData];
}
else{
    NSLog(@"Error : %@",error);
}
}];
当我试图获取这两个对象GTIN_CD,GTIN_NM时,它不会返回任何值。此外,对象仅包含5列的值


任何帮助都将不胜感激。提前感谢

您没有对您获取的对象进行任何操作。您正在从dict获取和设置值。请尝试以下操作:

PFQuery *query=[PFQuery queryWithClassName:@"Product"];
[query setLimit:20];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (!error) {
        NSMutableDictionary *dict=[[NSMutableDictionary alloc]init]; // Initialize outside of loop
        for (PFObject *obj in objects) {
            [dict setValue:obj[@"GTIN_CD"] forKey:@"GTIN_CD"]; // obj[@"key"] instead of dict[@"key"]
            [dict setValue:obj[@"GTIN_NM"] forKey:@"GTIN_NM"];
        }

        [self.tblSearchResult setDelegate:self];
        [self.tblSearchResult setDataSource:self];
        [self.tblSearchResult reloadData];

   }
    else{
        NSLog(@"Error : %@",error);
    }
}];
更新

在你的if里试试这个!错误:

for (PFObject *obj in objects) {
    for (NSString *key in [obj allKeys]) {
        if([obj[key] isKindOfClass:[NSString class]]) {
            NSLog(@"Key: %@ - Value: %@", key, obj[key]);
        }
    }
}

这将记录所有列及其值。请注意,我现在还没有亲自测试过这段代码,所以它可能有打字错误等。

这些字段真的是对象吗?表示指向其他对象的指针如果是这样,则必须添加[query includeKey:@GTIN_CD];将它们包括在查询中。否。它们是简单的字符串类型。我在UITableViewDelegate的cellForRowAtIndexPath方法中使用此值。如果我也打印对象,我也无法查看此字段。因此,我认为在字典中获取/存储没有问题。您的错误是没有使用obj[@GTIN_CD]从您获取的对象获取值。你的代码没有在任何单元格中设置任何内容。您将这些值放在dict中,但在任何地方都不使用dict。dict是在for循环中声明的,每次迭代都会丢失。我把它移到了外面,但是如果你不把它的内容用于任何事情,它仍然对你没有帮助。@Handsomeguy是对的,你的代码中有一个错误,你在那里写的dict应该是obj,第7行和第8行。我已经编辑了代码。但我仍然无法获取这些字段的值。您确定所有产品对象都具有这些值吗?他们的列名正是大写的GTIN_CD等?