【发布时间】:2016-05-10 10:16:59
【问题描述】:
我只是 iOS 的初学者,所以请忽略我的愚蠢,但请清除我的疑问。 我在 UITableView 中显示解析的数据。我正在使用存储在我的 NSDictionary 中的 URL 下载给定的图像。
我需要一个很好的解释我是否应该使用
dispatch_sync(,{
dispact_async (,{}));
或
dispatch_async(,{
dispact_async (,{}));
这是我用于填充 UITableview 数据的代码。
-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
CustomClassCellTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"myCell" forIndexPath:indexPath ];
BookMyShow *bookMyShow = [_jsonArray objectAtIndex:indexPath.row];
cell.eventCode.text = bookMyShow.eventCode;
cell.eventName.text = bookMyShow.eventName;
NSURL *url = [NSURL URLWithString:bookMyShow.imageString];
//NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
//[request setHTTPMethod:@"GET"];
dispatch_queue_t loadQ = dispatch_queue_create("DownloadQueue", NULL);
dispatch_sync(loadQ,
^{
NSData *data = [NSData dataWithContentsOfURL:url];
dispatch_async(dispatch_get_main_queue(),
^{
cell.myImageView.image = [UIImage imageWithData:data];
});
});
// [cell.imageView setImageWithURL:[NSURL URLWithString:[[array objectAtIndex:indexPath.row] objectForKey:@"image"]] placeholderImage:nil];
//cell.imageView.image = [UIImage imageNamed:bookMyShow.imageString];
return cell;
}
【问题讨论】:
-
这可能与这个问题无关,尝试从 cellForRowAtIndexPath 中抽象您的下载部分以获得更清晰的代码。来回答您的问题请参阅此链接stackoverflow.com/questions/19822700/…
标签: ios objective-c json uitableview