2015-03-05 5 views
0

У меня есть 3 таблицы на синтаксического анализа таблицыКак получить поле массива из таблицы «Пользователь» и получить записи из другой таблицы? разобрать

  • User - имеет пользователей и списки они следуют таблицы
  • List - создал пользователя список
  • таблицы сообщений - указатели на записи из таблицы Список

Пользователь может следовать за несколькими списками, поэтому все идентификаторы списка хранятся в виде массива идентификатора объекта, соответствующего записям в таблице списка

Когда я c все

NSArray *convArr = [[PFUser currentUser] objectForKey:@"lists"]; 

это показывает, есть список объекты, но это выглядит, как если бы пустым и я не могу получить значения из него в дальнейшую таблицу списка запросов, чтобы получить пользователь списков фаворитов

For all the users and their list I have 


PFQuery *uQuery = [PFUser query]; 
[uQuery includeKey:@"lists"]; 
[uQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { 
    ... 
}]; 

, но я могу 't передавать текущую пользовательскую информацию в запросе.

[uQuery whereKey:@"user" equalTo:[PFUser currentUser]]; or 
[uQuery includeKey:[PFUser currentUser].objectId]; 

Добавление любого из них не подтягивает записи для текущего пользователя.

+0

Ждать, вы сохраняете 'массив'' PFObjects'? – kygcoleman

+0

Я бы предложил искать реляционные запросы Parse.com. (Https://parse.com/docs/ios_guide#queries-relational/iOS). –

+0

Я сделал это уже @BartdeRuijter, но забыл поместить его в OP, я улучшаюсь с каждым вопросом, который я прошу помочь людям не отправлять мне ссылки, которые могли бы быть наиболее очевидными, прежде чем обращаться в StackOverflow за помощью. – nirvana74v

ответ

0

Вы можете попробовать обновить текущего пользователя, чтобы последние данные извлекались с сервера, а затем просматривали объект списка.

[[PFUser currentUser] fetchInBackgroundWithBlock:^(PFObject *user, NSError *error){ 
    NSArray *convArr = [user objectForKey:@"lists"]; 
}]; 
+0

Бросает ошибку: объект не найден для get (Код: 101, Версия: 1.6.3) – nirvana74v

+0

Я сделал: PFQuery * uQuery = [PFUser query]; [uQuery includeKey: @ "lists"]; [uQuery findObjectsInBackgroundWithBlock:^(объекты NSArray *, ошибка NSError *) { if (error) return; NSLog (@ "Obj:% @", объекты); }]; это дает мне все записи для всех пользователей, и если я добавлю [uQuery whereKey: @ "user" equalTo: [PFUser currentUser]]; это не возвращает результат – nirvana74v

0

Хорошо, я все равно попробую.

Я собираюсь предположить, что у вас есть currentUser, для которого вы хотите получить все свои списки. Вы можете сделать простой запрос, как это (Ofcourse если у вас есть массив с ObjectIds из списков, которые он сделал):

PFQuery *query = [PFQuery queryWithClassName:@"List"]; 
[query whereKey:@"objectId" containedIn:currentUser[@"lists"]; 
[query findObjectsInBackgroundWithBlock:^(NSArray *lists, NSError *error) { 
    //This should return all the lists based on the keys inside the column of lists from the current User 
} 

Если вы хотите сделать это для каждого пользователя вы должны запросить у пользователя первым, то в основном делают то же самое, но вместо пользователя «currentUser [@» перечисляет «]», вы должны использовать что-то похожее, например «queriedUser [@» lists »]. Простите меня заранее за ужасный синтаксис.

также один удобный инструмент для нахождения права «запрашивая ограничения» может быть это link

Я надеюсь, что это по крайней мере помог вам немного!

Смежные вопросы