У меня 2 класса: событие и участник. Вот их атрибуты.Запрос по возрастанию по полю NSDate указателя
Событие:
- NSDate STARTINGDATE
- NSString название
Участник:
- PFUser пользователь событие
- Event
- и некоторые другие атрибуты, которые мне понадобятся позже
Когда пользователь хочет участвовать в событии, я создаю объект-участник и назначаю ему событие, а также пользователя. Позже я хочу получить все события, у которых есть участники для текущего пользователя. И эти события нужно заказывать, начиная с даты начала.
Я создал запрос, который получает всех участников для текущего пользователя, и я прочитал от него атрибут события, но мне действительно нужно, чтобы события были упорядочены по его начальной дате. Как мне подойти к этому. Я создал класс участника, потому что мне нужно сохранить данные, созданные пользователем для этого события.
EDIT: Я попытался это одно:
PFQuery *eventQuery = [Event query];
[eventQuery orderByAscending:@"startingDate"];
PFQuery *participantQuery = [Participant query];
[participantQuery includeKey:@"user"];
[participantQuery includeKey:@"event"];
[participantQuery whereKey:@"user" equalTo:[PFUser currentUser];
[participantQuery whereKey:@"event" matchesQuery:eventQuery];
[participantQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
NSMutableArray *eventsArray = [NSMutableArray new];
for (Participant *participant in objects) {
[eventsArray addObject:participant.event];
}
}];
here I can use eventsArray
Но это один раз игнорирует [eventQuery orderByAscending:@"startingDate"];
линию. Мне также нужно спросить мнение, что я выбираю подход, чтобы сначала получить участников, а затем поместить их в цикл for, чтобы получить их события и сохранить их в массиве. Это хорошо? Кажется неправильным, почему мне нужно забрать участника, если мне нужны события для пользователя.
У меня уже есть отношение к именованным участникам, и если я посмотрю на анализ, участник будет сохранен в этом отношении. Но этот запрос не работает.Консоль в xcode скажет мне ** Ошибка: плохой тип для $ inQuery ** Я думаю, что он имеет какое-то отношение к этой строке '[eventQuery whereKey: @" участники "matchesQuery: memberQuery];' Может быть, вы не можете выполнить запрос сверху отношение. Может кто-нибудь подтвердить это. –
Я использую этот тип запроса, чтобы проверить, находится ли пользователь в отношении 'users' в классе' Role' все время (т. Е. Это используется в роли администратора). Он работает нормально. Убедитесь, что столбец 'members' имеет тип' Relation '(посмотрите заголовок столбца в браузере данных). Ошибка указывает, что тип столбца и тип объекта, который вы сравниваете, не совпадают. –
Благодарим за отзыв. Я был уверен, что сделал все правильно, но я снова проверил, и понял, что изменил имя атрибута отношений. Я попробую этот метод, и если все будет хорошо работать, я отбираю ваш ответ как правильное решение. Спасибо за ваше время. –