これは私のコードです:
// Create a service object for executing queries
GTLServiceYouTube *service = [[GTLServiceYouTube alloc] init];
// Services which do not require sign-in may need an API key from the
// API Console
service.APIKey = @"AIzaSyD9pvsUtnegJvwv5z5XrBO5vFTBVpErYN8";
// Create a query
GTLQueryYouTube *query = [GTLQueryYouTube queryForSearchListWithPart:@"id"];
query.maxResults = 50;
query.q = @"hiking boots";
//query.country = @"US";
// Execute the query
GTLServiceTicket *ticket = [service executeQuery:query
completionHandler:^(GTLServiceTicket *ticket, id object, NSError *error) {
// This callback block is run when the fetch completes
if (error == nil) {
GTLYouTubeSearchListResponse *products = object;
// iteration of items and subscript access to items.
for (GTLYouTubeSearchResult *item in products) {
//NSLog(@"%@",item.identifier); - THIS WORKS, BUT GIVES ME THE WHOLE IDENTIFIER, I JUST WANT THE VIDEO ID
NSLog(@"%@",item.identifier.videoId);
}
}else{
NSLog(@"Error: %@", error.description);
}
}];
私の最初の NSLog の上にあるコメントに気づいたら、問題なく多くのものを印刷することができます。しかし、item.identifier のプロパティを出力しようとすると、アプリが完全にクラッシュします。クラッシュログは次のとおりです。
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[GTLYouTubeVideo videoId]: unrecognized selector sent
さて、item.identifier は GTLYouTubeResourceId ですが、なぜ GTLYoutubeVideo からプロパティを取得しようとしていると考えているのでしょうか?
助けてくれてありがとう!