如何使用Async方式从API获取数据。

时间:2016-11-10 06:14:33

标签: ios objective-c nsurlconnection

我正在尝试获取数据并在tableView中显示。因为我必须在viewDidLoad中发送请求。但是加载我的数据需要花费很多时间,所以我需要以异步的方式完成它。 任何建议或建议。?

- (void)viewDidLoad {

    //------castApi----//
    [super viewDidLoad];
    [[self tableView2]setDelegate:self ];
    [[self tableView2]setDataSource:self];
    array=[[NSMutableArray alloc]init];
    NSString *castString = [NSString stringWithFormat:@"https://api.themoviedb.org/3/movie/%@/credits?api_key=c4bd81709e87b12e609433c49",movieIDinString];
    NSURL *url=[NSURL URLWithString:castString];

    NSURLRequest *request=[NSURLRequest requestWithURL:url];
    connection=[NSURLConnection connectionWithRequest:request delegate:self];
    if (connection){
        webData=  [[NSMutableData alloc]init];
    }
}

1 个答案:

答案 0 :(得分:0)

试试这个

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://api.themoviedb.org/3/movie/%@/credits?api_key=c4bd81709e87b12e609433c49",movieIDinString]];

NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];

[NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
{

}];