我有一些操作都在里面块。 此操作,只有更新UIImage
是这样的:
^(UIImage *image) {
self.myImage = image;
}];
我的形象是通过与访问互联网计算NSURLConnection
。 当我收到来自因特网上的图像,我称之为块是一个内部NSMutableArray
。 到现在为止还挺好。 我的问题是,当我有相同的网址,多个图像,而不是使多个电话,我刚加入新块的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环境,以抵消使用释放或自动释放。 所以这可能是一个解决方案吗?