我有这种方法来获取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];
}
永远不会调用完成块。
tvOS允许 NSURLSession
。我是否需要在项目中设置一些内容,例如权限或Info.plist
上的某些东西来使其工作?这段代码好吗?
谢谢!
答案 0 :(得分:3)
默认情况下,创建任务时,已暂停。您必须通过调用resume
来启动任务。
[[session dataTaskWithRequest:request completionHandler:ourBlock] resume]
答案 1 :(得分:0)
您必须恢复任务才能启动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];