ios - Xcode 7 iOS 9 收到此警告 Null 传递给需要非空参数的被调用方

标签 ios objective-c xcode

我收到这个警告:

Null passed to a callee that requires a non-null argument

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));
    });
}

我该如何解决这个问题?我正在尝试清除所有警告。

最佳答案

没有任何 URL 就无法执行任务。 URL 不应为零。您应该提供 NSURL 来执行任务。

另外,你不应该给配置 nil。

你应该去吧

         [NSURLSessionConfiguration defaultSessionConfiguration];

返回一个新创建的默认 session 配置对象。

         [NSURLSessionConfiguration ephemeralSessionConfiguration];

返回一个 session 配置,该配置不使用缓存、cookie 或凭据的持久存储。

所以你应该尝试:

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

注意:将@"your NSURL"视为 NSURL 而不是 NSString

关于ios - Xcode 7 iOS 9 收到此警告 Null 传递给需要非空参数的被调用方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32724185/

相关文章:

iphone - iOS - 无法设置按钮 'Disable' ,而不删除其内容

ios - 是否应该始终在主线程上调用BecomeFirstResponder()?

iphone - "Viewport"由 HTML 中的 META 标记...如果 iPad = X 并且如果 iPhone = Y?

ios - Storyboard选项卡栏未着色

ios - 无法识别Facebook App邀请“FBSDKAppInviteContent”

objective-c - 如何有条件地使用新的 Cocoa API

iphone - 用描边和填充颜色画圆

swift - Realm - 属性不能标记为动态,因为它的类型不能在 Objective-C 中表示

ios - 条件绑定(bind)的初始化程序必须具有 Optional 类型,而不是 'Date'

ios - 如何获取联系方式(名字、姓氏、联系人 ID、电话号码)