ios - 具有 3 个部分的 PFQueryTableViewController

标签 ios objective-c uitableview parse-platform pfquery

我的解析数据库中有一个“游戏”表,其中包含以下相关列:

  • isOver( bool 值)
  • whoseTurn (Relation:_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 个不同的表格 View 部分显示结果?

最佳答案

这个问题包含两个挑战,这对 PFQueryTableVC 来说太多了。 .您网站上的帖子表明您可以获得一些额外覆盖的部分,但没有涵盖的是您的模型通过 PFRelation 依赖于相关对象(用户)。

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

这将迫使您使用普通的旧 UIViewController 来滚动自己的有一个 UITableView作为其 View 的 subview 。 (请注意,我不推荐 UITableViewController 在这里...就像 PFQueryTableVC 一样,它通常会产生更多的努力而不是方便,尽管您可以在这里摆脱它)。

操作的要点是这样的:依次查询游戏表,然后是whoseTurn关系,则为 players关系。使用这些数据,您将能够将找到的游戏分成三个数组,与您的表格 View 部分完全对应:gamesThatAreOver , gamesThatAreUsersTurn , gamesThatAreOtherUsersTurn .

你可以把这些数组放在另一个数组中,称之为model .告诉你的 TableView 你有 self.model.count部分(永远是 ==3 ),并且索引路径中的行数是 self.model[indexPath.section].count

您在索引路径中的对象版本将为您提供一个游戏,看起来像这样:self.model[indexPath.section][indexPath.row];

PS - 我认为让自己摆脱解析提供类的“便利”(又名约束)无论如何都会是一个积极的因素。

关于ios - 具有 3 个部分的 PFQueryTableViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28422402/

相关文章:

iOS; NSAutoreleasePool 过时了吗?

ios - 程序在向上滚动 UITableView 时收到信号 SIGABRT

iphone - 如何从 UITableView 中删除部分 (iPhone/iPad)

iphone - 为什么 UITableView 调用 UIScrollView 的委托(delegate)方法?

IOS:以模式方式呈现登录屏幕的代码

php - Cakephp 和 iOS 10.3.2

ios - xcode 6 swift 无法将现有对象添加到不同的设备 Storyboard

objective-c - 为计算器制作一个退格按钮

ios - 如何设置可在应用程序委托(delegate)中访问的 XCUItest 类的参数

ios - 调度队列和 NSOperation 队列