Заполните UITableView с альбомами Facebook | IOS - PullRequest
0 голосов
/ 24 ноября 2011

Я начал использовать IOS и Graph Api несколько недель назад.У меня проблемы с заполнением UITableView данными об альбомах, которые я получаю с Facebook.Я делаю мои appdelegete мой uitabledatasource и uitabledelegate тоже я делаю следующий запрос после того, как пользователь вошел в систему:

NSString* fql = [NSString stringWithString:@"select object_id, cover_object_id, name, description from album where can_upload=1 and owner=me ()"];
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObject:fql forKey:@"query"];
[facebook requestWithMethodName:@"fql.query" andParams:params andHttpMethod:@"GET" andDelegate:self];
[theTable reloadData];

И я реализую в таблице следующее:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [self.resultData count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: SimpleTableIdentifier];
    if (cell == nil) { 
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SimpleTableIdentifier] autorelease];
    }
    NSUInteger row = [indexPath row]; cell.textLabel.text = [[self.resultData objectAtIndex:row] valueForKey:@"name"];
    NSLog(@"the name %@", [[self.resultData objectAtIndex:row] valueForKey:@"name"]);
    return cell;
}

И управлениерезультат, подобный следующему:

- (void)request:(FBRequest *)request didLoad:(id)result {
    if ([result isKindOfClass:[NSArray class]]) {
       resultData=result;
        [theTable reloadData];
}
NSLog(@"Result of API call: %@", result);
}

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

1 Ответ

1 голос
/ 28 ноября 2011

Прежде всего, вам нужно сохранить resultData в request:didLoad: (используйте метод установки!).

Во-вторых, вы должны проверить, не пытается ли таблица вообще перезагрузить данные или что-то не так в ваших методах источника данных табличного представления. Если первое, вероятно, что theTable на самом деле nil в request:didLoad:, так что вызов reloadData не имеет никакого эффекта. Проверьте это с помощью отладчика.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...