关于sendingynchronousRequest的警告:returningResponse:错误:已弃用:首先在ios中build议使用9-

它说use [NSURLSession sharedsession] dataTaskwithRequest:request completionHandler:]

所以在这里我的代码:

  NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 

我改变了上面的代码来这样:

  NSData *returnData = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:nil]; 

我有两个警告:

  1. 空传递给请求非空参数的被调用者

  2. 不完整的指针types用'NSURLSession'types的expression式初始化'NSData'

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

我的实际代码:

  -(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]; } 

你需要使用像这样的方法:

 // 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:获取更多详细信息。