63 lines
1.9 KiB
Mathematica
63 lines
1.9 KiB
Mathematica
|
|
//
|
||
|
|
// NSURLSession+PLCategory.m
|
||
|
|
// MoHuanXingYu
|
||
|
|
//
|
||
|
|
// Created by apple on 2020/8/25.
|
||
|
|
// Copyright © 2020 MoHuanXingYu. All rights reserved.
|
||
|
|
//
|
||
|
|
|
||
|
|
#import "NSURLSession+PLCategory.h"
|
||
|
|
#import <objc/runtime.h>
|
||
|
|
|
||
|
|
void swizzing(Class class, SEL originalSelector, SEL swizzledSelector)
|
||
|
|
{
|
||
|
|
Method originalMethod = class_getClassMethod(class, originalSelector);
|
||
|
|
Method swizzledMethod = class_getClassMethod(class, swizzledSelector);
|
||
|
|
method_exchangeImplementations(originalMethod, swizzledMethod);
|
||
|
|
}
|
||
|
|
@implementation NSURLSession (PLCategory)
|
||
|
|
|
||
|
|
+ (void)load
|
||
|
|
{
|
||
|
|
static dispatch_once_t onceToken;
|
||
|
|
dispatch_once(&onceToken, ^{
|
||
|
|
Class class = [NSURLSession class];
|
||
|
|
swizzing(class, @selector(sessionWithConfiguration:), @selector(qy_sessionWithConfiguration:));
|
||
|
|
|
||
|
|
swizzing(class, @selector(sessionWithConfiguration:delegate:delegateQueue:),
|
||
|
|
@selector(qy_sessionWithConfiguration:delegate:delegateQueue:));
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
+ (NSURLSession *)qy_sessionWithConfiguration:(NSURLSessionConfiguration *)configuration
|
||
|
|
delegate:(nullable id<NSURLSessionDelegate>)delegate
|
||
|
|
delegateQueue:(nullable NSOperationQueue *)queue
|
||
|
|
{
|
||
|
|
if (!configuration)
|
||
|
|
{
|
||
|
|
configuration = [[NSURLSessionConfiguration alloc] init];
|
||
|
|
}
|
||
|
|
#ifdef DEBUG
|
||
|
|
|
||
|
|
#else
|
||
|
|
configuration.connectionProxyDictionary = @{};
|
||
|
|
#endif
|
||
|
|
|
||
|
|
return [self qy_sessionWithConfiguration:configuration delegate:delegate delegateQueue:queue];
|
||
|
|
}
|
||
|
|
|
||
|
|
+ (NSURLSession *)qy_sessionWithConfiguration:(NSURLSessionConfiguration *)configuration
|
||
|
|
{
|
||
|
|
if (configuration)
|
||
|
|
{
|
||
|
|
#ifdef DEBUG
|
||
|
|
|
||
|
|
#else
|
||
|
|
configuration.connectionProxyDictionary = @{};
|
||
|
|
#endif
|
||
|
|
// configuration.connectionProxyDictionary = @{};
|
||
|
|
}
|
||
|
|
return [self qy_sessionWithConfiguration:configuration];
|
||
|
|
}
|
||
|
|
@end
|