UISearchBar只接受一个词来搜索youTube视频

时间:2014-07-29 18:22:13

标签: objective-c json youtube youtube-api

我有一个基本上搜索youTube视频的应用。 所有youTube搜索和结果视频都在一个视图控制器中。

现在,一切正常,我确实使用此API在我的视图中显示了想要的视频(使用JSON):" https://gdata.youtube.com/feeds/api/videos?v=2&alt=jsonc&q=%@"

问题是: 1. UISearchBar只接受一个词来搜索。如果我在搜索栏上放两个或两个以上的单词,应用程序崩溃了。 (如果我不想让这两个词让我的应用程序崩溃, 然后我需要在searchBar上写,即" new%20songs"而不是"新歌")。 所以这里的问题是:我是否需要检测seachBar.text上的每个空格并将其替换为"%20"? 还是有更合适的东西..?

另一件事:语言 - 我的UISearchBar只接受英语!如果我把另一种语言放在它上面 - CRASH!

有人有解释吗?我试图改变一些API规则,但没有成功。

编辑:我不会离开这里的代码,因为我不认为这是问题所在。代码工作得很好..我认为它更像API问题,但当然,如果需要,我会发布一些代码。

感谢所有人!!!

1 个答案:

答案 0 :(得分:1)

要获取正确的URL字符串,您需要使用stringByAddingPercentEscapesUsingEncoding方法。因此,所有空格和字符(英语除外)将被特殊代码替换(例如,空格将被替换为%20等)。例如:

    NSString *searchStr = @"string with space";
    NSString *youtubeURLString = [NSString stringWithFormat:@"https://gdata.youtube.com/feeds/api/videos?v=2&alt=jsonc&q=%@", searchStr];
    NSString *URLString = [youtubeURLString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];