#ios #parse-platform #pfquery
#iOS #синтаксический анализ-платформа #pfquery
Вопрос:
У меня есть a PFQueryTableViewController
, который отлично загружает Thread
s (PFObjects с данными о теме форума).
При нажатии на ячейку PFQuertyTableViewController
загружается новый Response
s (PFObjects с данными об ответе пользователя в потоке), но у меня возникают проблемы с тем, чтобы убедиться, что они Response
специфичны для этого Thread
.
Я могу очень легко получить весь массив ответов,
NSArray *responses = thread[@"responses"];
Однако я понятия не имею, как использовать это с a PFQuery
в a PFQueryTableViewController
. Вот что я попробовал:
Я получил эту идею из этого сообщения на форуме, но для меня это ничего не делает (self.objects пуст).
- (PFQuery *)queryForTable
{
PFQuery *query = [PFQuery queryWithClassName:self.parseClassName];
NSArray *threads = self.topic[@"threads"];
for (PFObject *thread in threads)
{
[thread fetchIfNeeded];
NSLog(@"Thread title: %@", thread[@"title"]);
}
[query whereKey:@"title" containedIn:threads];
return query;
}
Вывод:
Thread title: This is my title for my post about "Animal Rights"
2014-06-20 10:25:11.730 ThumbWar[9185:60b] Fetched: <Thread:dasLkCUo77:(null)> {
title = "This is my title for my post about "Animal Rights"";
user = "<PFUser:********>";
}
Ответ №1:
Используйте includeKey, когда вы получаете потоки в своем первом PFQueryTableViewController
. Потоки будут приходить со своими ответами, и вы можете передать эти ответы в нормальное UITableViewController
состояние при нажатии на ячейку.
- (PFQuery *)queryForTable {
PFQuery *query = [PFQuery queryWithClassName:self.parseClassName];
[query includeKey:@"responses"]; //Retrieve responses of threads
[query orderByDescending:@"createdAt"]; //You may also sort Threads if you want
return query;
}
Комментарии:
1. Что, если вы не выполняли предыдущий запрос для потоков? Что, если вы начинаете ни с чего, кроме идентификатора объекта потока, и хотите получить запрос create one, который получает ответы этого потока для PFQueryTableViewController?