Rui*_*res 5 nsurlconnection ios objective-c-blocks automatic-ref-counting
我有一些内部块的操作.此操作,只更新UIImage如下:
^(UIImage *image) {
self.myImage = image;
}];
Run Code Online (Sandbox Code Playgroud)
我的图像是通过访问互联网计算的NSURLConnection.当我从互联网上收到图像时,我称之为内部的那个块NSMutableArray.到现在为止还挺好.我的问题是,当我有多个具有相同URL的图像,而不是进行多次调用时,我只是NSMutableArray在处理连接的类内部添加一个新块.这样,我进行一次调用,并更新共享URL的多个图像.一切正常,问题是我在泄漏块.我将这样的块添加到NSMutableArray:
if( (self = [super init]) )
{
self.connectionURL=url;
self.arrayOfBlocks=[NSMutableArray array];
[arrayOfBlocks addObject:completion];
}
return self;
Run Code Online (Sandbox Code Playgroud)
这是初始化连接类的时候.这是我需要添加一个新块NSMutableArray(我只添加它,就是这样):
[arrayOfBlocks addObject:completion];
Run Code Online (Sandbox Code Playgroud)
这是当我最终收到回调并开始执行块时:
for (MyBlock blockToExecute in arrayOfBlocks)
{
blockToExecute([UIImage imageWithData:data]);
}
Run Code Online (Sandbox Code Playgroud)
问题是,这是以某种方式泄漏.我无法抵消使用版本或自动发布,因为我在ARC环境中.那么什么可以解决方案呢?
