NSURL网址值未分配

时间:2013-09-05 19:58:49

标签: objective-c nsurl

我正在尝试开发一款可以访问YouTube视频的应用。

当我在文本字段中输入艺术家的名字时,该网址没有取名。

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

2 个答案:

答案 0 :(得分:2)

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

urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

如果您阅读了Apple文档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

答案 1 :(得分:1)

根据您粘贴的代码判断,问题很可能是您的URL字符串中的空格字符,我认为不应该存在。但是你也应该注意逃避你的查询参数,正如我在下面描述的那样:

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