NSURLSessionDataTask,dataTaskWithRequest:completionHandler IOS12 中的问题
NSURLSessionDataTask, dataTaskWithRequest:completionHandler Issue in IOS12
在我的 Objective-C、iPhone 应用程序中,我成功地使用了 NSURLSession,但我的应用程序开始崩溃并出现来自 iOS 12:
的以下错误
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSConcreteMapTable dataTaskWithRequest:completionHandler:]: unrecognized selector sent to instance
获取令牌==>
+ (NSURLSession *)sharedSessionManager
{
static NSURLSession *session = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
[sessionConfiguration setHTTPAdditionalHeaders:@{
@"Accept": @"application/json"
}
];
session = [NSURLSession sessionWithConfiguration:sessionConfiguration delegate:nil delegateQueue:nil];
});
return session;
}
为以后的所有调用获取保存的令牌 ==>
+ (NSURLSession *)sharedAsyncSessionManager
{
NSString *authToken = [NSString stringWithFormat: @"Bearer %@", m_strToken];
static NSURLSession *session = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSURLSessionConfiguration *sessionConfiguration =[NSURLSessionConfiguration defaultSessionConfiguration];
[sessionConfiguration setHTTPAdditionalHeaders:@{
@"Content-Type": @"application/json",
@"Authorization": authToken}
];
session = [NSURLSession sessionWithConfiguration:sessionConfiguration delegate:nil delegateQueue:nil];
});
return session;
}
呼叫API的==>
NSURLSession *sessionMnger = [SessionManager sharedAsyncSessionManager];
NSURLSessionDataTask *task = [sessionMnger dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
{
NSMutableArray *arrTemp = [[NSMutableArray alloc]init];
}
IOS12 中的 dataTaskWithRequest 应用程序崩溃。我可以阅读如下错误消息:
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'-[NSConcreteMapTabledataTaskWithRequest:completionHandler:]: 无法识别的选择器发送到实例
什么时候我想用上面的 sessionMnger 调用 API 应用程序崩溃....
iOS12 缺少什么?
通常,当您收到 "unrecognized selector sent to instance" 与不相关的 class 名称(在本例中为 NSConcreteMapTable
)的错误时,这表示内存管理问题。很可能原始对象已被释放,内存已损坏且运行时变得混乱。
要进行诊断,请尝试从方案菜单启用 "Zombie Objects",这应该有助于确定崩溃原因。寻找可能发生内存损坏的线索。
在我的 Objective-C、iPhone 应用程序中,我成功地使用了 NSURLSession,但我的应用程序开始崩溃并出现来自 iOS 12:
的以下错误Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSConcreteMapTable dataTaskWithRequest:completionHandler:]: unrecognized selector sent to instance
获取令牌==>
+ (NSURLSession *)sharedSessionManager
{
static NSURLSession *session = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
[sessionConfiguration setHTTPAdditionalHeaders:@{
@"Accept": @"application/json"
}
];
session = [NSURLSession sessionWithConfiguration:sessionConfiguration delegate:nil delegateQueue:nil];
});
return session;
}
为以后的所有调用获取保存的令牌 ==>
+ (NSURLSession *)sharedAsyncSessionManager
{
NSString *authToken = [NSString stringWithFormat: @"Bearer %@", m_strToken];
static NSURLSession *session = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSURLSessionConfiguration *sessionConfiguration =[NSURLSessionConfiguration defaultSessionConfiguration];
[sessionConfiguration setHTTPAdditionalHeaders:@{
@"Content-Type": @"application/json",
@"Authorization": authToken}
];
session = [NSURLSession sessionWithConfiguration:sessionConfiguration delegate:nil delegateQueue:nil];
});
return session;
}
呼叫API的==>
NSURLSession *sessionMnger = [SessionManager sharedAsyncSessionManager];
NSURLSessionDataTask *task = [sessionMnger dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
{
NSMutableArray *arrTemp = [[NSMutableArray alloc]init];
}
IOS12 中的 dataTaskWithRequest 应用程序崩溃。我可以阅读如下错误消息:
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'-[NSConcreteMapTabledataTaskWithRequest:completionHandler:]: 无法识别的选择器发送到实例
什么时候我想用上面的 sessionMnger 调用 API 应用程序崩溃....
iOS12 缺少什么?
通常,当您收到 "unrecognized selector sent to instance" 与不相关的 class 名称(在本例中为 NSConcreteMapTable
)的错误时,这表示内存管理问题。很可能原始对象已被释放,内存已损坏且运行时变得混乱。
要进行诊断,请尝试从方案菜单启用 "Zombie Objects",这应该有助于确定崩溃原因。寻找可能发生内存损坏的线索。