Ios AFNetworking意外命中AFAutoPurgingImageCache中的断点
在将AFNetworking添加到iOS项目后,我遇到了一个奇怪的问题。AF的版本是Ios AFNetworking意外命中AFAutoPurgingImageCache中的断点,ios,multithreading,debugging,memory,block,Ios,Multithreading,Debugging,Memory,Block,在将AFNetworking添加到iOS项目后,我遇到了一个奇怪的问题。AF的版本是3.2.1。如果我在AFAutoPurgingImageCache.m中的行111添加一个断点,然后运行这个项目,这个断点将奇怪地被击中。但是,如果我将此断点移动到第110行或第112行,它将不再被命中。谁能告诉我它为什么被击中?类AFAutoPurgingImageCache仅在下载图像时使用,这与我发送的请求无关 包含此特殊行的方法是 - (void)addImage:(UIImage *)image wit
3.2.1
。如果我在AFAutoPurgingImageCache.m
中的行111
添加一个断点,然后运行这个项目,这个断点将奇怪地被击中。但是,如果我将此断点移动到第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的代码只是在didfishlaunchingwithoptions
- (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;
}
-(BOOL)应用程序:(UIApplication*)应用程序使用选项完成启动:(NSDictionary*)启动选项{
//应用程序启动后自定义的覆盖点。
静态AFHTTPSessionManager*manager=nil;
manager=[[AFHTTPSessionManager alloc]init];
id responseSerialization=[AFJSONResponseSerializer序列化程序];
manager.responseSerializer=responseSerialize;
[经理获取:@”https://www.google.com/参数:无进度:无成功:^(NSURLSessionDataTask*\u非空任务,id\u可空响应对象){
NSLog(@“正常”);
}失败:^(NSURLSessionDataTask*_可空任务,NSError*_非空错误){
NSLog(@“错误”);
}];
返回YES;
}