目标C的YouTube API有一个“?” (问号)名称为“videoId?:”,用于GTLYouTubeResourceId

时间:2012-12-17 15:22:29

标签: youtube-api

我真的相信这在某些方面起作用,但是当它到达这里时它会丢弃一个异常并崩溃:

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"}

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题并通过做这样的事情解决了它。显然,返回的JSON字符串中有videoId。

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

答案 1 :(得分:0)

在你之后一小时我遇到了完全相同的问题!看起来他们忘记了将videoId映射到一个属性。如果您将此视频更改为GTLYouTubeVideo类,请执行以下操作:

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

然后转到GTLYouTube.m文件并将@“id”,@“identifier”更改为@“videoId”,@“identifier”它将起作用。这可能不是官方方式,但他们没有提供任何关于将YouTube集成到应用程序中的文档,所以这将是必须的!

希望有所帮助