更新到 iOS 6.1 后,我在 AFNetworking 框架的 AFImageRequestOperation.m 和 AFHTTPClient.m 中收到此警告:
在此块中强烈捕获“操作”可能会导致保留周期
基于这个答案,我可以通过使用 __weak 变量来修复 ARC 中的保留周期。它也说
块将被捕获的对象保留
有谁知道如何解决这个问题?
谢谢。
更新到 iOS 6.1 后,我在 AFNetworking 框架的 AFImageRequestOperation.m 和 AFHTTPClient.m 中收到此警告:
在此块中强烈捕获“操作”可能会导致保留周期
基于这个答案,我可以通过使用 __weak 变量来修复 ARC 中的保留周期。它也说
块将被捕获的对象保留
有谁知道如何解决这个问题?
谢谢。
我们很幸运,XCode 4.6 显示了一个警告来避免这个问题它可以通过提供一个弱引用来解决
AFImageRequestOperation *requestOperation = [[AFImageRequestOperation alloc] initWithRequest:urlRequest];
**__weak AFImageRequestOperation *tempRequestOperation = requestOperation;**
[requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
if (success) {
UIImage *image = responseObject;
if (imageProcessingBlock) {
dispatch_async(image_request_operation_processing_queue(), ^(void) {
UIImage *processedImage = imageProcessingBlock(image);
dispatch_async(**tempRequestOperation**.successCallbackQueue ?: dispatch_get_main_queue(), ^(void) {
success(operation.request, operation.response, processedImage);
});
});
} else {
success(operation.request, operation.response, image);
}
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (failure) {
failure(operation.request, operation.response, error);
}
}];