Parse.com中指针<class>的问题

时间:2015-07-18 16:57:14

标签: ios objective-c parse-platform

我已经使用 Parse.com 两个月,但这是我第一次遇到一个我无法弄清楚的愚蠢错误。

我一直在为iOS应用程序工作,但最初我一直在和我自己的用户合作。现在我注册了其他用户,我想从服务器上获取它们。

好吧,我在表格Changes中添加了一个对象,其中我有一个user属性Pointer<User>(它不是_User,但是用户,它的自定义,只是一个对象)。好吧,当我尝试获取我拥有的所有行时,我与用户的那一行是可以的:

enter image description here

所以我的调试控制台就像:

enter image description here

但是当我抓取其他用户时:

enter image description here

我的调试控制台是:

enter image description here

所以没有任何变量!!!! :(

这是我的代码:

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];


}];

我通过添加新用户做了什么错误???

非常感谢你。

1 个答案:

答案 0 :(得分:2)

当您从表中获取指针类型时,您将只返回objectId的元数据。您需要调用- (instancetype)includeKey:(NSString *)key才能从Changes表中获取所有数据。如果直接从User表查询,您将获得所有数据。但在这种情况下,User对象是Changes个对象的子文档。

在执行查询之前添加此行:

[closestChanges includeKey:@"user"]