Просто попытка понять, что моя таблица не заполняется, когда появляется мой контроллер вида.Я использую AIHTTPRequest для связи с REST API.Вызов возвращает массив ассоциативных массивов (который, как я предполагаю, мне придется привести к NSArray из NSDictionaries).
В заголовке моего TableViewController:
@interface MyTableViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource> {
NSArray *homepageItems;
}
@property (nonatomic, retain) NSArray * homepageItems;
Вреализация:
@synthesize homepageItems;
....
- (void)viewDidLoad {
NSURL *url = [NSURL URLWithString:URL_TO_MY_API];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
Когда возвращаются данные:
- (void)requestFinished:(ASIHTTPRequest *)request
{
// Use when fetching text data
NSString *responseString = [request responseString];
id response = [responseString objectFromJSONString];
homepageItems = (NSArray *)response;
}
И в методе табличного представления:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:CellIdentifier] autorelease];
}
NSDictionary *dataItem = [homepageItems objectAtIndex:indexPath.row];
// Configure the cell...
cell.textLabel.text = [dataItem objectForKey:@"message"];
return cell;
}
Когда представление загружается, ничего не находится встол.Я подозреваю, что это происходит потому, что при запуске метода табличного представления homepageItems не заполняется асинхронным методом.Как я могу добиться загрузки данных в табличное представление?
Спасибо,
EDIT: В моем методе requestFinished я проверил объект homepageItems, выполнивследующее:
for(NSDictionary *dictionary in homepageMMDs) {
NSLog(@"%@", [dictionary objectForKey:@"message"]);
}
И правильные сообщения от моей службы API регистрируются.