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",这应该有助于确定崩溃原因。寻找可能发生内存损坏的线索。