У меня есть некоторые операции, которые находятся внутри блоков. Эти операции обновляют только UIImage
следующим образом:
^(UIImage *image) {
self.myImage = image;
}];
Мое изображение вычисляется при доступе к Интернету с помощью NSURLConnection
. Когда я получаю изображение из Интернета, я вызываю этот блок, который находится внутри NSMutableArray
. Все идет нормально. Моя проблема заключается в том, что когда у меня есть несколько изображений с одним и тем же URL-адресом, вместо того, чтобы делать несколько вызовов, я просто добавляю новый блок в NSMutableArray
внутри класса, который обрабатывает соединение. Таким образом, я делаю один вызов и обновляю несколько изображений с общим URL-адресом. Все работает нормально, проблема в том, что у меня текут блоки. Я добавляю такой блок в NSMutableArray
:
if( (self = [super init]) )
{
self.connectionURL=url;
self.arrayOfBlocks=[NSMutableArray array];
[arrayOfBlocks addObject:completion];
}
return self;
Это когда инициализируется класс соединения. Это когда мне нужно добавить новый блок в NSMutableArray
(я только его добавляю, и все):
[arrayOfBlocks addObject:completion];
Это когда я наконец получаю обратный вызов, и начинаю выполнять блоки:
for (MyBlock blockToExecute in arrayOfBlocks)
{
blockToExecute([UIImage imageWithData:data]);
}
Проблема в том, что это как-то просачивается. Я не могу противодействовать использованию релизов или автоматических релизов, потому что я нахожусь в среде ARC. Итак, что может быть решением?