NSURLSession 不适用于 tvOS?

NSURLSession not working on tvOS?

我有这个方法可以获取 TV 上 URL 的内容:

-(void)placeGetRequestForDeveloperID:(NSString *)developerID andRunOnCompletion:(void (^)(NSData *data, NSURLResponse *response, NSError *error))ourBlock {

  NSString *urlString = [NSString stringWithFormat:@"https://itunes.apple.com/lookup?id=%@&entity=software", developerID];

  NSURL *url = [NSURL URLWithString:urlString];
  NSURLRequest *request = [NSURLRequest requestWithURL:url];

  NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
  NSURLSession *session = [NSURLSession sessionWithConfiguration:config];

  [session dataTaskWithRequest:request completionHandler:ourBlock];

}

永远不会调用完成块。

NSURLSession 在 tvOS 上是允许的。是否有我必须在项目上设置的东西,比如权利或 Info.plist 上的东西才能使这项工作?这个代码可以吗?

谢谢!

默认情况下,当您创建任务时,它是暂停。您必须通过调用 resume.

来开始任务
[[session dataTaskWithRequest:request completionHandler:ourBlock] resume]

您必须恢复任务才能开始 API 通话。

您也可以像下面这样尝试 API 调用。

    NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
      NSURLSession *session = [NSURLSession sessionWithConfiguration:config];



  NSURLSessionDataTask *apiCall = [session dataTaskWithRequest:urlRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

             NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];

}];

[apiCall resume];