我已经使用 Parse.com 两个月,但这是我第一次遇到一个我无法弄清楚的愚蠢错误。
我一直在为iOS应用程序工作,但最初我一直在和我自己的用户合作。现在我注册了其他用户,我想从服务器上获取它们。
好吧,我在表格Changes
中添加了一个对象,其中我有一个user
属性Pointer<User>
(它不是_User
,但是用户,它的自定义,只是一个对象)。好吧,当我尝试获取我拥有的所有行时,我与用户的那一行是可以的:
所以我的调试控制台就像:
但是当我抓取其他用户时:
我的调试控制台是:
所以没有任何变量!!!! :(
这是我的代码:
PFQuery *closestChanges = [PFQuery queryWithClassName:@"Changes"];
[closestChanges whereKey:@"coordinates" nearGeoPoint:geoPoint withinKilometers:0.5f];
[closestChanges findObjectsInBackgroundWithBlock:^(NSArray *changes, NSError *error) {
arrayChanges0 = [[NSMutableArray alloc] init];
arrayChanges1 = [[NSMutableArray alloc] init];
if (changes == nil && changes.count == 0) {
[_tableView reloadData];
return;
}
for (int i = 0; i < changes.count; i++) {
PFObject *currentChange = [changes objectAtIndex:i];
PFObject *user = [currentChange valueForKey:@"user"]; // here my user is null when it's other users.
PFObject *changeToStore = [PFObject objectWithClassName:@"Changes"];
[changeToStore setValue:currentChange[@"changetype"] forKey:@"type"];
[changeToStore setValue:currentChange[@"quantity"] forKey:@"quantity"];
[changeToStore setValue:currentChange[@"date"] forKey:@"enddata"];
[changeToStore setValue:user forKey:@"user"];
if ([currentChange[@"changetype"] intValue] == 0)
[arrayChanges0 addObject:changeToStore];
else
[arrayChanges1 addObject:changeToStore];
}
[_tableView reloadData];
}];
我通过添加新用户做了什么错误???
非常感谢你。
答案 0 :(得分:2)
当您从表中获取指针类型时,您将只返回objectId
的元数据。您需要调用- (instancetype)includeKey:(NSString *)key
才能从Changes
表中获取所有数据。如果直接从User
表查询,您将获得所有数据。但在这种情况下,User
对象是Changes
个对象的子文档。
在执行查询之前添加此行:
[closestChanges includeKey:@"user"]