У меня есть пользовательский класс UITableViewCell, объект модели которого выполняет асинхронную загрузку изображения, которое должно отображаться в ячейке. Я знаю, что у меня правильно подключены розетки в IB для WidgetTVC, я знаю, что данные изображений правильно возвращаются с моего сервера, и я также выделил / init'd UImage widget.logo. Почему изображение всегда пустое, то в моем tableViewCell? Заранее спасибо.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
Widget *theWidget = [widgetArray objectAtIndex:indexPath.row];
static NSString *CellIdentifier = @"WidgetCell";
WidgetTVC *cell = (WidgetTVC*)[self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil)
{
[[NSBundle mainBundle] loadNibNamed:@"WidgetTVC" owner:self options:nil];
cell = self.widgetTVC;
self.widgetTVC = nil;
}
[cell configureWithWidget:theWidget];
return cell;
}
В моем классе WidgetTVC у меня есть следующий метод:
- (void)configureWithWidget:(Widget*)aWidget {
self.widget = aWidget;
self.nameLbl.text = aWidget.name;
[self.logoIvw setImage:aWidget.logo]; // logoIvw is the image view for the logo
}
Наконец, у меня есть метод обратного вызова, который устанавливает свойство logo UIImage для объекта модели Widget асинхронно (упрощенно):
(void)didReceiveImage:(ASIHTTPRequest *)request {
// I pass a ref to the Widget's logo UIImage in the userInfo dict
UIImage *anImage = (UIImage*)[request.userInfo objectForKey:@"image"];
UIImage *newImage = [UIImage imageWithData:[request responseData]];
anImage = newImage;
}