NSURLSession 在 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在电视操作系统上是允许的。我是否必须在项目上设置一些东西,比如权利或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];

相关内容

  • 没有找到相关文章

最新更新