我有这个方法来获取 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];