Xcode 7 iOS 9获得此警告Null传递给需要非null参数的被调用者

时间:2015-09-22 18:24:41

标签: ios objective-c xcode

我收到了这个警告:

  

Null传递给需要非空参数的被调用者

     

NSURLSessionDataTask * dataTask = [[NSURLSession sessionWithConfiguration:nil] dataTaskWithURL:nil];

以下是完整的方法:

+ (void)load {
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        NSURLSessionDataTask *dataTask = [[NSURLSession sessionWithConfiguration:nil] dataTaskWithURL:nil];
        Class taskClass = [dataTask superclass];
        af_addMethod(taskClass, @selector(af_resume),  class_getInstanceMethod(self, @selector(af_resume)));
        af_addMethod(taskClass, @selector(af_suspend), class_getInstanceMethod(self, @selector(af_suspend)));
        af_swizzleSelector(taskClass, @selector(resume), @selector(af_resume));
        af_swizzleSelector(taskClass, @selector(suspend), @selector(af_suspend));
    });
}

我该如何解决这个问题?我正在努力清理所有警告。

1 个答案:

答案 0 :(得分:3)

如果没有任何网址,您将无法执行任务。网址不应为零。您应该为执行任务提供NSURL。

此外,您不应该为配置指定nil。

你应该去

         [NSURLSessionConfiguration defaultSessionConfiguration];

返回新创建的默认会话配置对象。

         [NSURLSessionConfiguration ephemeralSessionConfiguration];

返回对缓存,cookie或凭据不使用持久存储的会话配置。

所以你应该尝试:

   NSURLSessionDataTask *dataTask = [[NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]] dataTaskWithURL:@"your NSURL"];

注意:考虑@"你的NSURL"作为NSURL而不是NSString