Я пытаюсь понять блоки немного больше.исполняемые блоки, хранящиеся в NSMutableArray с параметром
У меня есть эти определения:
@property (nonatomic, retain) NSMutableArray * callBacksOnSuccess;
@property (nonatomic, copy) void (^callBackSuccessWithUIImage) (UIImage *) ;
Когда изображение загрузки заканчивается я делаю это в блоке завершения, и все отлично
UIImage *coverImage = [UIImage imageWithData:data];
callBackSuccessWithUIImage(coverImage);
Теперь я хотел бы быть в состоянии сделать то же самое для всех блоков обратного вызова, хранящихся в callBacksOnSuccess NSMutableArray, но я не знаю, как это сделать.
Я пробуя для в цикле, но это не работает, скорее всего, из-за Неоднозначное определение класса ID:
UIImage *coverImage = [UIImage imageWithData:data];
for (id callBackBlock in callBacksOnSuccess)
{callBackBlock(coverImage);}
Пожалуйста толкнуть меня к правильному подходу.
спасибо!
спасибо! работает как шарм. так удивился, увидев typedef как решение. – TrekOnTV2017
Рад помочь! 'Typedef' на самом деле просто все упростило для понимания и чтения. Ваша проблема заключалась в том, что вы объявляли переменную 'callBackBlock' внутри цикла foreach' как тип' id', который не поддерживает вызовы типа 'block()'. Если бы вы указали переменную как 'void (^ callBackBlock) (UIImage *)' в цикле for, она бы работала точно так же, но просто «уродливая» –
да, я знал, что проблема была в этом, просто не мог понять, что с этим делать. Блоки потрясающие, мне просто нужно немного больше времени, чтобы их полностью понять. – TrekOnTV2017