В моем приложении Objective-C для iPhone, которое я успешно использовал NSURLSession, мое приложение начало аварийно завершать работу с ошибкой, показанной в iOS 12 ниже:
Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: '- [NSConcreteMapTable dataTaskWithRequest: completeHandler:]: нераспознанный селектор, отправленный в экземпляр
Извлечение токена ==>
+ (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];
}
Приложение аварийно завершает работу для dataTaskWithRequest в IOS 12. Сообщение об ошибке я могу прочитать, как показано ниже:
Завершение приложения из-занеобработанное исключение 'NSInvalidArgumentException', причина: '- [NSConcreteMapTable dataTaskWithRequest: завершениеHandler:]: нераспознанный селектор, отправленный экземпляру
, когда я когда-либо хотел вызвать API с сбоем приложения sessionMnger ....
чего-то не хватает в iOS 12?