从Parse检索所有用户关系

时间:2014-08-05 22:29:58

标签: objective-c object parse-platform pfquery

我有一个应用程序,用户添加其他用户,并将其保存为Parse上的关系。这是我用来保存/添加的代码:

    PFUser *user = (PFUser *)object;
    [friendsRelation addObject:user];
    [self.friends addObject:user];
    [self.currentUser saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
        if (error) {
            NSLog(@" %@ %@", error, [error userInfo]);
        }
    }];

现在,在另一个视图控制器中,我真的不知道如何在TableView内显示用户的所有朋友。

1 个答案:

答案 0 :(得分:1)

我会研究使用PFQueryTableViewController。这允许您查询关系并在表格中显示结果。代码看起来像这样:

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (self) {
        // Custom the table
        NSLog(@"Init");
        // The className to query on
        self.parseClassName = @"_User";

        // The key of the PFObject to display in the label of the default cell style
        self.textKey = @"firstName";

        // Whether the built-in pull-to-refresh is enabled
        self.pullToRefreshEnabled = NO;

        // Whether the built-in pagination is enabled
        self.paginationEnabled = YES;

        // The number of objects to show per page
        self.objectsPerPage = 25;
    }
    return self;
}

- (PFQuery *)queryForTable {


    PFQuery *query = [self.relation query];




    // If no objects are loaded in memory, we look to the cache first to fill the table
    // and then subsequently do a query against the network.
    if ([self.objects count] == 0) {

        NSLog(@"NONE");
        query.cachePolicy = kPFCachePolicyIgnoreCache;

    }

    [query orderByAscending:@"lastName"];

    return query;
} 

其中self.relation是您从当前用户获取的关系。

EDITL如果您不想使用PFQTVC(这是更容易的选项,并包含更多功能),您可以使用常规的tableview。首先,获取当前用户的关系:

PFRelation *relation = [[PFUser currentUser] relationForKey:@"friends"]; 现在,查询这个关系:

PFQuery *query = [relation query];
NSArray *array = [query findObjects];

现在,您可以使用包含PFUser对象的该数组的内容填充您的常规表。