Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parse platform PFQueryTableViewController使用PFObject';s数组_Parse Platform_Pfquery_Pfquerytableviewcontrolle - Fatal编程技术网

Parse platform PFQueryTableViewController使用PFObject';s数组

Parse platform PFQueryTableViewController使用PFObject';s数组,parse-platform,pfquery,pfquerytableviewcontrolle,Parse Platform,Pfquery,Pfquerytableviewcontrolle,抱歉,如果这是一个非常简单和愚蠢的问题。我还是个新手 假设我有一个Schedule对象,一个Schedule对象可以有几个ScheduleItem对象(不是很多)。我决定使用关系数组对此进行建模,例如: PFObject *first = ... PFObject *second = ... PFObject *third = ... PFObject *schedule = [PFObject objectWithClassName:@Schedule"]; schedule[@"sched

抱歉,如果这是一个非常简单和愚蠢的问题。我还是个新手

假设我有一个Schedule对象,一个Schedule对象可以有几个ScheduleItem对象(不是很多)。我决定使用关系数组对此进行建模,例如:

PFObject *first = ...
PFObject *second = ...
PFObject *third = ...

PFObject *schedule = [PFObject objectWithClassName:@Schedule"];
schedule[@"scheduleItems"] = @[first, second, third];
假设我想稍后查询这些属于此计划的ScheduleItems,并在PFQueryTableViewController中使用它。我不能只是查询此计划并通过数组访问其项,因为PFQueryTableViewController使用PFQuery的结果作为表视图的数据源。我不知道如何查询“位于特定调度对象上的数组'scheduleItems'中的ScheduleItem对象”。我看到了查询方法
whereKey:containedIn:
,但它似乎不太匹配,因为我在执行查询之前没有对该数组的引用。看起来我确实需要进行某种嵌套/复合查询,因为对于此查询的一部分,我需要查询Schedule对象,但我不确定这是如何工作的

编辑:澄清此问题。假设计划对象的名称为“今天”。我知道我可以为该计划对象构造一个查询,并告诉它包含“scheduleItems”字段:

我知道,如果我使用类似于
findobjectsinbackgroundithblock:
的东西执行此查询,直接查询结果是一个包含一个对象的数组,即Schedule对象,所有ScheduleItems都可以通过ScheduleItems字段获得


我的问题是,我不想自己执行此查询-我想将这些ScheduleItems用作PFQueryTableViewController中的单元格,它假定单元格和直接查询结果对象之间存在一对一的映射。如果将上述查询与PFQueryTableViewController一起使用,则直接查询结果是一个包含一个对象的数组,这意味着该表只有一个对象。简而言之,我不知道如何告诉PFQueryTableViewController执行查询,但随后使用其相关的对象数组填充表。

您选择使用数组而不是关系非常适合您的用例。因此,您可以指定

[query includeKey:@"scheduleItems"];
在创建查询以指定它应该包含、内联并且不需要第二次网络请求之后,数组中对象的详细信息


请记住,应将数组中的对象数量保持在较小的范围内,以避免性能和潜在的大小问题。

是否告诉查询包含该列<代码>[query includeKey:@“scheduleItems”]在这里使用数组作为关系,请参见文档:如果我在最初的问题中不清楚,请道歉。我知道我可以使用includeKey:在查询中获取scheduleItems数组,但我不知道如何使用PFQueryTableViewController实现这一点。我希望这些ScheduleItems中的每一个都是表中的一行,但是如果我按计划执行查询并使用includeKey,查询本身将只返回一个结果,并且表将只有一行。当然,我可以直接执行此查询并手动设置表,但我希望利用PFQueryTableViewController来处理其中的大部分。因此,您需要自己进行配置,例如,通过转换子类,使其在响应中为每个对象创建一个节,并将每个节的行数设置为
(1+messages.count)
。我认为Parse中的示例AnyPic应用程序与定制
PFQueryTableViewController
的功能基本相同,我一直在努力尝试这种配置。:)据我所知,PFQueryTableViewController假定直接查询结果对象和表单元格之间存在一对一的映射。如果按计划查询,则查询结果只有一个对象,即使该对象有多个相关的ScheduleItem。因此,即使创建“响应中每个对象一个节”也只能创建一个节。我看了AnyPic,它们没有像我一样的数组类型关系,所以这似乎不太适用,它确实适用。您需要重写section和row委托方法,并为每一行(其中每一行都是计划或其消息之一)适当地配置单元格。好的,我想我仍然需要执行一些手动表视图管理。这很好,我只是想知道Parse是否有办法“为我做”。谢谢
[query includeKey:@"scheduleItems"];