我正在编写一个包含图像的画廊,这些图像可以通过 url 加载AFNetworking
。
在对象Init
的方法中,ImageView
我调用了一个发送请求的函数。这里:
- (void) loadWithUrl:(NSURL *)url
{
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:TimeOut];
[request setHTTPShouldHandleCookies:NO];
[request setHTTPShouldUsePipelining:YES];
__weak AOWImageView *safeSelf = self;
m_operation = [AFImageRequestOperation imageRequestOperationWithRequest:request
imageProcessingBlock:nil
success:^
(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image)
{
[safeSelf setImage:image];
}
failure:^
(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error)
{
[safeSelf setNoImageLabelOpaque];
}];
[m_operation start];
}
如果在ImageView
屏幕的可见部分之外,- (void) dealloc
则调用。我在这种方法中取消了加载图像的操作,所以:[m_operation cancel];
. 我猜这些操作不会被取消,因为内存正在增加并且没有被释放。
我认为有保留周期。我想了解如何正确编写它。谢谢。