Я просто новичок в iOS, поэтому, пожалуйста, игнорируйте мою глупость, но любезно очистите мои сомнения. Я показываю проанализированные данные в UITableView. В этом я загружаю изображение, используя URL-адрес, хранящийся в моем NSDictionary.dispacth_sync vs dispatch_async: iOS JSON parsing
Мне нужно хорошее объяснение, должен ли я использовать
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 для более чистого кода. Переходя к вашему вопросу См. Эту ссылку http://stackoverflow.com/questions/19822700/difference-between-dispatch-async-and-dispatch-sync-on-serial-queue – Feroz