NSURL和URL有效性

时间:2011-09-15 04:57:16

标签: iphone objective-c ios nsurl

我正在使用来自API的网址,其中搜索字词被引号括起来。例如: http://www.example.com/searchterm="search"

但是,由于引号,我的NSURL(由URLWithString生成)由于URL无效而为零。有没有解决的办法?谢谢!

2 个答案:

答案 0 :(得分:2)

您可以在引号前面加一个反斜杠,或者在URL编码值 %22

http://www.example.com/searchterm=\"search\"

http://www.example.com/searchterm=%22search%22

或者您可以在将其用作NSURL之前删除引号。

NSString * searchUrl = @"http://www.example.com/searchterm=\"search\"";
searchUrl = 
  [searchUrl stringByReplacingOccurrencesOfString:@"\"" withString:@""]; // something to this effect, not tested.

然后你可以进行正常的NSURL呼叫:

[NSURL URLWithString: searchUrl];

答案 1 :(得分:0)

尝试以下方法:

#define SAFARI_SEARCH_URL_FORMAT @"http://search/search?q=\"%@\""
mySearchBar.text =@"hello";
NSString * tempstr = [NSString stringWithFormat:SAFARI_SEARCH_URL_FORMAT, mySearchBar.text];

    NSURL *an1Url = [[[NSURL alloc] initWithString:[tempstr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
] autorelease];
NSLog(@"--(%@)--",an1Url);

an1Url不会是零