关于sendsynchronousRequest:returningResponse:error:已弃用的警告:在ios 9中首次发布-

关于sendsynchronousRequest:returningResponse:error:已弃用的警告:在ios 9中首次发布-,ios,objective-c,nsurlsession,Ios,Objective C,Nsurlsession,它说使用[nsursession sharedsession]dataTaskwithRequest:request completionHandler:: 下面是我的代码: NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 我将上述代码更改为: NSData *returnData = [[NSURLSession sharedSe

它说
使用[nsursession sharedsession]dataTaskwithRequest:request completionHandler::

下面是我的代码:

 NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
我将上述代码更改为:

 NSData *returnData = [[NSURLSession  sharedSession] dataTaskWithRequest:request completionHandler:nil];
我得到两个警告:

  • 传递给需要非Null参数的被调用方的Null

  • 使用“NSURLSession”类型的表达式初始化“NSData”的指针类型不完整

  • 帮帮我。请用有助于理解的代码解释我。我是新手

    我的实际代码:

       -(void)getdata {
    
        NSString *userName = @“user@yahoo”;
        NSString *password = @“passr”;
        NSData *plainData = [password dataUsingEncoding:NSUTF8StringEncoding];
        NSString *base64String = [plainData base64EncodedStringWithOptions:0];
        base64String=[self sha256HashFor: base64String];
    
        NSString *urlString = @"https://api.eaxmpleurl/files";
    
        NSMutableURLRequest *request= [[NSMutableURLRequest alloc] init];
        [request setURL:[NSURL URLWithString:urlString]];
        [request setHTTPMethod:@"GET"];
    
    
    
        NSString *authStr = [NSString stringWithFormat:@"%@:%@", userName, base64String];
        NSData *authData = [authStr dataUsingEncoding:NSUTF8StringEncoding];
    
    
        NSString *authValue = [NSString stringWithFormat:@"Basic %@", [authData base64EncodedStringWithOptions:0]];
    
           [request setValue:authValue forHTTPHeaderField:@"Authorization"];
    
    
    
    
    
    
    
    
    
    
        NSURLSessionDataTask *dataTask = [[NSURLSession sharedSession]
                                          dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
        {
            // Use the data here
    
    
    
    
    
    
    
            NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    
    
            NSError * error1;
    
            self->arrayPDFName = [[NSMutableArray alloc]init];
            NSDictionary *jsonResults = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
    
    
            NSDictionary *dictOriginal = jsonResults[@"dark”];
        [titleArray addObject:[NSString stringWithFormat:@" Dark(%@)”, dictOriginal[@"count"]]];
    
    
        NSDictionary *dictOriginal2 = jsonResults[@"opey”];
        [titleArray addObject:[NSString stringWithFormat:@" Opey(%@)”, dictOriginal2[@"count"]]];
    
    
    
        NSDictionary *dictOriginal3 = jsonResults[@"pef”];
        [titleArray addObject:[NSString stringWithFormat:@" Pef(%@)”, dictOriginal3[@"count"]]];
    
    
        NSDictionary *dictOriginal4 = jsonResults[@"sdf”];
        [titleArray addObject:[NSString stringWithFormat:@" Sdf(%@)”, dictOriginal4[@"count"]]];
    
    
            NSArray *arrayFiles = [NSArray arrayWithObjects: dictOriginal, dictOriginal2, dictOriginal3, dictOriginal4, nil];
    
    
            NSLog(@"str: %@", titleArray);
    
    
            for (NSDictionary *dict in arrayFiles) {
                NSMutableArray *arr = [NSMutableArray array];
    
                NSArray *a = dict[@"files"];
                for(int i=0; i < a.count; i ++) {
    
    
                    NSString *strName = [NSString stringWithFormat:@"%@",[[dict[@"files"] objectAtIndex:i] valueForKey:@"name"]];
                    // NSLog(@"str: %@", strName);
                    [arr addObject:strName];
                }
                [arrayPDFName addObject:arr];
            }
    
    
    
    
    
    
    
    
    
    
    
                    NSString *errorDesc;
            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
            NSString *documentsDirectory1 = [paths objectAtIndex:0];
            NSString *plistPath = [documentsDirectory1 stringByAppendingPathComponent:@"SampleData.plist"];
    
    
            NSString *error2;
    
    
            data  = [ NSPropertyListSerialization dataWithPropertyList:jsonResults format:NSPropertyListXMLFormat_v1_0 options:0 error:&error];
    
    
            if(data ) {
                if ([data  writeToFile:plistPath atomically:YES]) {
                    NSLog(@"Data successfully saved.");
                }else {
                    NSLog(@"Did not managed to save NSData.");
                }
            }
            else {
                NSLog(@"%@",errorDesc);
            }
    
    
    
            NSDictionary *stringsDictionary = [NSDictionary dictionaryWithContentsOfFile:plistPath];
    
    
    
    
    #pragma unused (stringsDictionary)
    #pragma unused (error1)
    
    #pragma unused (str)
    
    
    
    
    
    
    
    
        }];
    
        // Starting the task
        [dataTask resume];
    
    
    
    
    }
    
    -(void)获取数据{
    NSString*用户名=@“user@yahoo”;
    NSString*密码=@“passr”;
    NSData*plainData=[密码数据使用编码:NSUTF8StringEncoding];
    NSString*base64String=[plainData base64EncodedStringWithOptions:0];
    base64String=[self-sha256HashFor:base64String];
    NSString*urlString=@”https://api.eaxmpleurl/files";
    NSMutableURLRequest*请求=[[NSMutableURLRequest alloc]init];
    [请求设置URL:[NSURL URLWithString:urlString]];
    [请求设置HttpMethod:@“获取”];
    NSString*authStr=[NSString stringWithFormat:@“%@:%@”,用户名,base64String];
    NSData*authData=[authStr dataUsingEncoding:NSUTF8StringEncoding];
    NSString*authValue=[NSString stringWithFormat:@“Basic%@,[authData base64EncodedStringWithOptions:0]];
    [请求设置值:HttpHeaderField的authValue:@“授权”];
    NSURLSessionDataTask*dataTask=[[NSURLSession sharedSession]
    dataTaskWithRequest:请求完成处理程序:^(NSData*数据,NSURLRRESPONSE*响应,NSError*错误)
    {
    //使用这里的数据
    NSString*str=[[NSString alloc]initWithData:数据编码:NSUTF8StringEncoding];
    n错误*错误1;
    self->arrayPDFName=[[NSMutableArray alloc]init];
    NSDictionary*jsonResults=[NSJSONSerialization JSONObjectWithData:数据选项:NSJSONReadingMutableContainers错误:nil];
    NSDictionary*dictOriginal=jsonResults[@“暗”];
    [titleArray addObject:[NSString stringWithFormat:@“深色(%@)”,dictOriginal[@“计数”]];
    NSDictionary*dictOriginal2=jsonResults[@“opey”];
    [titleArray addObject:[NSString stringWithFormat:@“Opey(%@)”,dictOriginal2[@“count”]];
    NSDictionary*dictOriginal3=jsonResults[@“pef”];
    [titleArray addObject:[NSString stringWithFormat:@“Pef(%@)”,dictOriginal3[@“count”]];
    NSDictionary*dictOriginal4=jsonResults[@“sdf”];
    [titleArray addObject:[NSString stringWithFormat:@“Sdf(%@)”,dictOriginal4[@“count”]];
    NSArray*arrayFiles=[NSArray数组及其对象:dictOriginal、dictOriginal2、dictOriginal3、dictOriginal4、nil];
    NSLog(@“str:%@”,titleArray);
    for(NSDictionary*以数组文件形式记录){
    NSMUTABLEARRY*arr=[NSMUTABLEARRY];
    NSArray*a=dict[@“文件”];
    for(int i=0;i
    您需要使用以下方法:

    // Creating a data task
    NSURLSessionDataTask *dataTask = [[NSURLSession sharedSession]
      dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
    {
      // Use the data here
    }];
    
    // Starting the task
    [dataTask resume];
    

    请查看更多详细信息。

    您是否阅读了
    dataTaskWithRequest:completionHandler
    的文档?请参阅我的upadte,实际数据就是这样。我需要如何在那里插入您的代码。请在代码中解释。我是新的bie@jj1:此行
    NSString*str=[[NSString alloc]initWithData:returnData编码:NSUTF8StringEncoding];应该在该completionHandler中。检查本教程:请查看我的代码。如果我单独添加那一行,我下面所有的代码都会被删除error@jj1:将所有代码放在[dataTask resume]之后;在块内部(我在此处使用数据),用数据替换returnData,并检查是否需要使用data
    NSData*returnData=[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]替换此行returnData