Мне нужно просмотреть новости в facebook в моем UITableView. Я отправляю асинхронный запрос на сервер, и я получил список лент новостей. Проблема в том, что я не получаю для каждого фида размер изображения, поэтому я должен отправить еще один асинхронный запрос на сервер, вложенный в предыдущий асинхронный запрос. Этот код очень низкий, потому что я должен повторно перезагрузить мой UITableView (см. Мой код).Получить ленту новостей с помощью Facebook GraphApi в приложении iOS
Мне нужно получить размер изображения, чтобы установить высоту UITableCell и размер UIImageView внутри ячейки.
Любая идея решить мою проблему?
Ниже мой код:
-(void)loadData{
//self.tableView.rowHeight = UITableViewAutomaticDimension;
screenRect = [[UIScreen mainScreen] bounds];
screenWidth = screenRect.size.width;
screenHeight = screenRect.size.height;
self.imgDic=[[NSMutableDictionary alloc]init];
self.desArr=[[NSMutableArray alloc]init];
self.mexArr=[[NSMutableArray alloc]init];
self.udidArr=[[NSMutableArray alloc]init];
[FBRequestConnection startWithGraphPath:@"/guide/feed" completionHandler:^(FBRequestConnection *connection,id result,NSError *error){
NSDictionary *data = [result objectForKey:@"data"];
for(NSDictionary *dic in data) {
if([dic objectForKey:@"description"]==nil){
[self.desArr addObject:@""];
}else{
[self.desArr addObject:[dic objectForKey:@"description"]];
}
if([dic objectForKey:@"object_id"]==nil){
[self.udidArr addObject:@""];
}else{
[self.udidArr addObject:[dic objectForKey:@"object_id"]];
[FBRequestConnection startWithGraphPath:[NSString stringWithFormat:@"/%@",[dic objectForKey:@"object_id"]] completionHandler:^(FBRequestConnection *connection,id result,NSError *error) {
[self.imgDic setObject:[result objectForKey:@"images"] forKey:[result objectForKey:@"id"]];
//NSLog(@"%@",[result objectForKey:@"id"]);
//NSLog(@"%@",[result objectForKey:@"images"]);
[self.tableView reloadData];
}];
}
if([dic objectForKey:@"message"]==nil){
[self.mexArr addObject:@""];
}else{
[self.mexArr addObject:[dic objectForKey:@"message"]];
}
}
[self.tableView reloadData];
}];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self loadData];
}