我在新应用程序中使用解析框架并尝试从其中一个表中获取数据。 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列的值。
任何帮助将不胜感激。提前致谢
答案 0 :(得分:0)
您没有对所获取的对象执行任何操作。你是从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(!error)中尝试这个:
for (PFObject *obj in objects) {
for (NSString *key in [obj allKeys]) {
if([obj[key] isKindOfClass:[NSString class]]) {
NSLog(@"Key: %@ - Value: %@", key, obj[key]);
}
}
}
这应记录您的所有列及其中的值。请注意,我目前尚未自行测试此代码,因此可能存在拼写错误等。