Я пытаюсь использовать (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object
для настройки отображения PFObject
данных в PFQueryTableViewController
. Поэтому я создаю свой объект PFQuery
в (PFQuery *)queryForTable
в моем PFQueryTableViewController
delegate
, который должен получить несколько объектов в NSArray
.parse.com PFQueryTableViewController возвращает один и тот же объект несколько раз
Я думал, что parse.com должен затем отправить/вызвать (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object
один раз для каждого возвращаемого объекта. Тем не менее, я обнаружил, что он постоянно возвращает один и тот же объект.
Так, например, вместо 3 разных объектов для 3-х раз (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object
вызывается, я получаю тот же объект. Но это не проблема с данными или запрос, потому что в конце (PFQuery *)queryForTable
, как раз перед
return query;
Я попытался
[query findObjectsInBackgroundWithBlock:^(NSArray *resultsNow,NSError *error) {NSLog(@"We have the following: %@", resultsNow);}];
sleep(5);
и это показывает 3 объекта, полученные правильно. Как получается точный такой же вопрос, когда обрабатывается PFQueryTableViewController
, вызывающий (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object
3 раза, вместо того, чтобы посылать 3 объекта один за другим, он отправляет первый 3 раза?
В ответ на вопросы WAIN, я добавил некоторые ответы в комментариях, но и следующий представляется актуальным:
- (PFObject *)objectAtIndex:(NSIndexPath *)indexPath {
// overridden, since we want to implement sections
if (indexPath.section < self.objects.count) {
return [self.objects objectAtIndex:indexPath.section];
}
return nil;
}
Какие указательные пути отправляются? Что предоставляет 'objectsDidLoad:'/доступно в 'objects'? – Wain
Спасибо, Уэйн, за хороший вопрос. На первый взгляд кажется, что objectsDidLoad: просто вызывает супер и прочее вроде 'self.tableView.tableHeaderView = nil;' и 'self.tableView.scrollEnabled = YES;' это не должно меняться, но я буду исследовать что более. – auspicious99
Что касается указательных путей, они (в порядке, 1, 2 и 3 раза), ' 2 индекса [0, 0]', ' 2 индекса [1, 0]' и ' 2 индекса [0, 0] ' –
auspicious99