Возможно, проблема в том, что вы вызываете его не в главном потоке, потому что это UIView - попробуйте это:
- (void)someMethodToStartAsync
{
UITableViewCell *cell = however your getting your cell;
NSAssert(cell, @"cell was nil");
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
[condition processImageDataWithBlock:^(NSData *imageData) {
// do something with indexPath
}
}
indexPath будет копией при использовании в блоке, поэтому, если вы хотите, чтобы инициализированное вами значение отражалось за пределами блока, объявите его следующим образом:
_block NSIndexPath *indexPath = whatever;