ios - AFNetworking 意外在 AFAutoPurgingImageCache 中遇到断点
问题描述
在将 AFNetworking 添加到我的 iOS 项目后,我遇到了一个奇怪的问题。AF 的版本是3.2.1
. 如果我在line 111
in添加一个断点AFAutoPurgingImageCache.m
然后运行这个项目,这个断点会奇怪地被命中。但是,如果我将此断点移动到第 110 行或第 112 行,它将不再被命中。谁能告诉我为什么被击中?类AFAutoPurgingImageCache
仅在下载图片时使用,与我发送的请求无关。
包含此特殊行的方法是
- (void)addImage:(UIImage *)image withIdentifier:(NSString *)identifier
我已经制作了断点位置的屏幕快照。
这是命中断点时的堆栈。
Thread 1 Queue : com.apple.main-thread (serial)
Thread 2 Queue : com.apple.NSURLSession-work (serial)
Thread 3 Queue : requestHeaderModificationQueue (concurrent)
#0 0x000000010df0d740 in __destroy_helper_block_e8_32s40s48s at /.../Pods/AFNetworking/UIKit+AFNetworking/AFAutoPurgingImageCache.m:111
#1 0x00007fff51a759ba in _Block_release ()
#2 0x000000010dfa9e8e in _dispatch_client_callout ()
#3 0x000000010dfba2a0 in _dispatch_lane_concurrent_drain ()
#4 0x000000010dfb134c in _dispatch_lane_invoke ()
#5 0x000000010dfac0ff in _dispatch_queue_override_invoke ()
#6 0x000000010dfbb399 in _dispatch_root_queue_drain ()
#7 0x000000010dfbbca6 in _dispatch_worker_thread2 ()
#8 0x00007fff51c089f7 in _pthread_wqthread ()
#9 0x00007fff51c07b77 in start_wqthread ()
Thread 4Thread 5com.apple.uikit.eventfetch-thread (6)Thread 7Thread 8Thread 9
使用 AF 的代码只是几行写在didFinishLaunchingWithOptions
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
static AFHTTPSessionManager* manager = nil;
manager = [[AFHTTPSessionManager alloc] init];
id<AFURLResponseSerialization> responseSerialization = [AFJSONResponseSerializer serializer];
manager.responseSerializer = responseSerialization;
[manager GET:@"https://www.google.com/" parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"ok");
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"error");
}];
return YES;
}
解决方案
推荐阅读
- html - Bootstrap 'align-content-around' 不起作用
- xml - 无法使用 XPath 将 XML 数据解析为 Java 对象
- sql - 将基表值与第二个表的值总和与 group by 进行比较
- laravel - laravel vanilo.io 中的反射异常
- python - pandas.to_sql 写入 redshift 失败并出现 NotSupportedError
- javascript - 变量赋值与直接传递给函数
- javascript - 结果不显示在自动完成(Angular)中
- bixby - 无法使用文档中的代码访问 Bixby 的唯一标识符
- wordpress - 哪里循环更改自定义帖子类型中的每个帖子?
- iot - Mxchip IOT 开发套件从 IOT 集线器接收数据