how to use sendAsynchronousRequest:queue:completionHandler:

前端 未结 6 1659
你的背包
你的背包 2020-11-27 10:30

Two part question

Part one: I am trying to create an ASynchronous request to my database. I am currently doing it Synchronously however I want to le

6条回答
  •  一向
    一向 (楼主)
    2020-11-27 11:18

    Since sendAsynchronousRequest:urlRequest queue:queue completionHandler: has been deprecated in iOS 9, and it will suggest to use NSURLSession's -dataTaskWithRequest:completionHandler: instead. It is available since iOS 7 and later.

    Original:

     NSURL *URL = [NSURL URLWithString:@"http://example.com"];
     NSURLRequest *request = [NSURLRequest requestWithURL:URL];
    
     [NSURLConnection sendAsynchronousRequest:request
                                        queue:[NSOperationQueue mainQueue]
                            completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
         // ...
     }];
    

    By NSURLSession:

     NSURL *URL = [NSURL URLWithString:@"http://example.com"];
     NSURLRequest *request = [NSURLRequest requestWithURL:URL];
    
     NSURLSession *session = [NSURLSession sharedSession];
     NSURLSessionDataTask *task = [session dataTaskWithRequest:request
                                             completionHandler:
         ^(NSData *data, NSURLResponse *response, NSError *error) {
             // ...
         }];
    
     [task resume];
    

提交回复
热议问题