У меня есть приложение, где пользователи пишут мнения, и только их друзья могут увидеть их в сроки и прокомментировать (В UITableViewController подкласса под названием «OpTimelineTableViewController»). Но у меня есть опрос о том, как правильно выполнить этот запрос ограничения, даже если раньше я пробовал решения, но не получал больше результатов ... (я начинаю вводить вашу модель данных):Запросы допрос PFUser и ограничение дружбы
Таблица «Пользователь» (это встроенный класс предоставляемого Parse)
"Мнение" таблица:
ObjectId;
senderId; Указатель Таблица пользователей
содержание; Строка
updatedAt; (предоставляется по умолчанию)
createdAt; (Предоставляется по умолчанию)
"Друзья" таблица:
friendId1 = Указатель таблицы пользователя
friendId2 = Указатель таблицы пользователя
статус = Строка, который может принимать «Подтвердить», «Ожидание» или «Отклонено»
updatedAt = (предоставляется по умолчанию)
createdAt = (предоставляется по умолчанию)
Теперь это главные важные части кода, которые я пытался:
- (void)loadOpinions {
PFQuery *opinionQuery = [PFQuery queryWithClassName:@"Opinion"];
[opinionQuery orderByDescending:@"createdAt"];
[opinionQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
// Array declared as property in the ".h" that contains Opinion objects
self.opinionArray = [[NSArray alloc] initWithArray:objects];
}
[self.tableView reloadData];
[self.refreshControl endRefreshing];
}];
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.opinionArray.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
OpinionTimelineCell *opCell = [tableView dequeueReusableCellWithIdentifier:@"OpTimelineCell" forIndexPath:indexPath];
// self.tempOpObj is an instance of PFObject declared in the ".h" that contains opinion object (for the appropriate index) contained in the opinionArray
self.tempOpObj = [self.opinionArray objectAtIndex:indexPath.row];
// Now I query "User" table to retrieve all users that have posted Opinions:
PFQuery *UserOpinionQuery = [PFUser query];
// I do a restriction between users that are contained in the "Opinion" table:
[UserOpinionQuery whereKey:@"objectId" equalTo:[[self.tempOpObj objectForKey:@"senderId"]objectId]];
[UserOpinionQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
// "userOpInfo" is an instance of PFUser declared in the ".h" that contains the last of object retrieved in "objects":
self.userOpInfo = [objects lastObject];
opCell.opinionUsername.text = self.userOpInfo.username;
}
}];
opCell.opinionContent.text = [self.tempOpObj objectForKey:@"content"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"mm-DD-yyyy";
opCell.opinionDate.text = [dateFormatter stringFromDate:self.tempOpObj.createdAt];
[opCell setSelectionStyle:UITableViewCellSelectionStyleNone];
// ? Query to restrict visible Opinion posts only if users are a current user friend:
PFQuery *restrictFriendQuery = [PFQuery queryWithClassName:@"Friends"];
[restrictFriendQuery whereKey:@"friendId1" equalTo:[PFUser currentUser]];
[restrictFriendQuery whereKey:@"friendId2" equalTo:[self.userOpInfo objectId]];
[restrictFriendQuery whereKey:@"status" equalTo:@"Confirm"];
// Is that way the best ??
[restrictFriendQuery findObjects];
return opCell;
}
Моя проблема находится в этом пункте: как узнать, какой запрос я делаю перед другими, зная, что количество ячеек зависит от количества мнений, содержащихся в сообщении Array, или просто просто : как запросить, ограничивая отображаемые мнения только от текущих друзей пользователя?
(Примечание: Я точен, что я реализовал метод [self.performSelector (loadOpinions) ....... в viewDidLoad для информации)
Мой код не кажется, ясно, что я» m all Ok, вот почему я не нашел простой способ сделать это
Может кто-нибудь помочь в том, как это исправить?
Должен ли я создать столбец массива «друг» в таблице «Пользователь», который содержит все друзья пользователя? – Lkm
Да, вот что я сделал бы – Wain