gpt4 book ai didi

ios - AFNetworking 的保留周期

转载 作者:行者123 更新时间:2023-12-01 19:07:03 24 4
gpt4 key购买 nike

我正在写一个图片库,这些图片可以通过 AFNetworking 的 url 加载.

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]; .我猜这些操作不会被取消,因为内存正在增加并且没有被释放。

enter image description here

我认为有保留周期。我想了解如何正确编写它。谢谢。

最佳答案

我在您发布的代码片段中没有看到保留周期,因此如果您泄漏内存,可能是由于您的应用程序代码的另一部分...

关于 AFNetworking 的“最佳实践”并加载图像-
AFNetworkingUIImageView 上有一个内置类别它具有通过 URL 设置 ImageView 图像的便捷方法。

UIImageView+AFNetworking ,特别是 setImageWithURL:方法及相关。这还具有保留缓存的优点(因此,如果多次请求,您不必再次获取图像),AFAIK 似乎没有由 AFImageRequestOperation 完成。 .

关于ios - AFNetworking 的保留周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19004655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com