google-api-objectivec-client を使用して YouTube チャンネル ID を取得しようとしています。私が抱えている問題は、基本的に、channelId にアクセスしようとすると、何らかの理由で例外が発生することです。私が使用しているコード:
GTLServiceYouTube *service = [[GTLServiceYouTube alloc] init];
service.APIKey = _MY_API_KEY_;
GTLQueryYouTube *query = [GTLQueryYouTube queryForSearchListWithPart:@"id"];
query.q = @"google";
query.type = @"channel";
query.maxResults = 1;
GTLServiceTicket *ticket = [service executeQuery:query completionHandler:^(GTLServiceTicket *ticket, id object, NSError *error) {
if (error == nil) {
GTLYouTubeSearchListResponse *products = object;
for (id item in products.items) {
GTLYouTubeSearchResult *result = item;
NSLog(@"Identifier:%@",result.identifier);
GTLYouTubeResourceId* resourceId = result.identifier;
NSLog(@"kind:%@",resourceId.kind);
NSLog(@"channel:%@",resourceId.channelId);
}
}else{
NSLog(@"Error: %@", error.description);
}
}];
このコードを実行しているときに得られる出力は次のとおりです。
2013-04-05 11:37:12.615 YouTest[21704:11303] Identifier:GTLYouTubeChannel 0x7233b00: {kind:"youtube#channel" channelId?:"UCK8sQmJBp8GCxrOtXWBpyEA"}
2013-04-05 11:37:12.617 YouTest[21704:11303] kind:youtube#channel
2013-04-05 11:37:12.617 YouTest[21704:11303] -[GTLYouTubeChannel channelId]: unrecognized selector sent to instance 0x7233b00
2013-04-05 11:37:12.618 YouTest[21704:11303] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[GTLYouTubeChannel channelId]: unrecognized selector sent to instance 0x7233b00'
したがって、私の実装は、resourceId の channelId にアクセスしようとしている時点でクラッシュします。ドキュメントから、resourceId のタイプが youtube#channel. channelId はもちろん、私も印刷している result.identifier 文字列から解析できますが、channelId のプロパティがあるため、それを使用することをお勧めします。
私のコードの何が問題なのかについてのアイデアはありますか?