PFQueryTableViewController 3节(PFQueryTableViewCont

2019-10-21 19:36发布

我在用下面的相关列解析数据库中的“游戏”表:

  • 依索维尔(布尔)
  • whoseTurn(关系:_user)(游戏可以有多个玩家,因此它可以不止一个人转的同时)
  • 玩家(关系:_user)

我需要查询该表并显示在tableview中的3个单独的部分的结果:

  • '轮到我了'
  • “他们打开”
  • '游戏结束'

我用的是再加上一些这里给出的答案代码的下面的查询思考: https://parse.com/questions/using-pfquerytableviewcontroller-for-uitableview-sections

PFQuery *query = [PFQuery queryWithClassName:self.parseClassName];

    [query whereKey:@"players" equalTo:[PFUser currentUser]];

    //BREAK UP INTO SECTIONS
    [query orderByDescending:@"isOver"];
    [query addDescendingOrder:@"whoseTurn"];

我怎样才能显示在3个不同的tableview部分的结果?

Answer 1:

这个问题包含两个方面的挑战,这是一个太多的PFQueryTableVC 。 在你的网站后,使明显的是,你可以得到的部分一点点额外的压倒一切的,但有什么不覆盖有你的模型依赖于通过PFRelation相关对象(用户)。

这额外的要求排除了PFQueryTableVC,因为它假设你的表可以在一个单一的查询中获取,但你要看取这两个关系列。

这将迫使你与一个普通的老滚你自己UIViewController具有UITableView作为其观点的子视图。 (请注意,我不建议UITableViewController这里...就像PFQueryTableVC ,它往往产生比方便更省力,但你很可能逃脱它在这里)。

如何做它的要点是:在继承,查询游戏桌,那么它的whoseTurn关系,那么它的players的关系。 有了这些数据,你就可以隔离找到游戏分为三个阵列,正好对应于你的表视图部分: gamesThatAreOvergamesThatAreUsersTurngamesThatAreOtherUsersTurn

你可以把这些阵列中的另一个,称之为model 。 告诉你有你的表视图self.model.count部分(这将永远是==3 ),而排在指数路径数为self.model[indexPath.section].count

您在指数路径对象的版本会给你一个游戏,看起来就像这样: self.model[indexPath.section][indexPath.row];

PS - 我觉得从解析提供一流的“方便”(又名约束)释放自己将是一个净正反正。



文章来源: PFQueryTableViewController with 3 Sections