3

これはある時点で機能したと本当に信じていますが、例外がドロップされ、ここに到達するとクラッシュします。

GTLYouTubeResourceId *thisVideo = item.identifier;
NSString *myVidId = thisVideo.videoId;

エラーは次のとおりです。

2012-12-17 10:13:02.494 STATS[21427:11603] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[GTLYouTubeVideo videoId]: unrecognized selector sent to instance 0xc471500'
*** First throw call stack:
(0x1e15012 0x16b2e7e 0x1ea04bd 0x1e04bbc 0x1e0494e 0x6e11 0x4ae5a 0x16c66b0 0xde7035 0x1d98f3f 0x1d9896f 0x1dbb734 0x1dbaf44 0x1dbae1b 0x276f7e3 0x276f668 0x2ee65c 0x278d 0x26b5)
libc++abi.dylib: terminate called throwing an exception

API から返される JSON は、? でフォーマットされます。動画IDのタイトルに

2012-12-17 10:20:46.476 STATS[21630:11603]      *****  YOUTUBe thisVideo GTLYouTubeVideo 0x8267fe0: {kind:"youtube#video" videoId?:"AAAAAAAA"}
4

2 に答える 2

1

私は同じ問題に遭遇し、このようなことをして解決しました。どうやら、返された JSON 文字列には videoId が含まれているようです。

NSString *myVidId = [thisVideo.JSON objectForKey:@"videoId"];

于 2013-05-02T06:02:05.970 に答える
0

私はあなたの約1時間後にまったく同じ問題を抱えていました! videoId をプロパティにマッピングするのを忘れているようです。thisVideo を GTLYouTubeVideo クラスに変更すると、次のようになります。

GTLYouTubeVideo *thisVideo = (GTLYouTubeVideo *)item.identifier;

次に、GTLYouTube.m ファイルに移動し、@"id", @"identifier" を @"videoId", @"identifier" に変更します。これはおそらく公式の方法ではありませんが、YouTube をアプリに統合するためのドキュメントを提供していないため、これを行う必要があります!

それが役に立てば幸い

于 2012-12-17T17:16:10.717 に答える