2

我正在尝试开发一个访问 YouTube 视频的应用程序。

当我在文本字段中输入艺术家的姓名时,URL 没有使用名称。

urlString = [NSString stringWithFormat:@"http://gdata.youtube.com/feeds/api/videos?q= %@&format=1&category=music&start-index=11&&start-index=11&max-results=30&v=2&alt=jsonc",replaceString];

NSURL *myURL = [[NSURL alloc]initWithString:urlString];

NSURLRequest *request = [NSURLRequest requestWithURL:myURL];

urlString我尝试调试时,它正在取值,但该值没有被分配给myURL并显示nil

4

2 回答 2

2

您需要转义硬编码 URL 中的非 ASCII 字符

urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

如果您阅读 Apple Doc 中的initWithString:说明

返回值

一个用 URLString 初始化的 NSURL 对象。如果字符串格式错误,则返回 nil。

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSURL_Class/Reference/Reference.html#//apple_ref/occ/instm/NSURL/initWithString

于 2013-09-05T20:28:47.670 回答
1

从您粘贴的代码来看,问题很可能是您的 URL 字符串中的空格字符,我认为它不应该存在。但是你也应该注意转义你的查询参数,正如我在下面描述的:

http://www.mikeabdullah.net/escaping-url-queries-in-cocoa.html

于 2013-09-08T10:52:40.133 回答