NSString和NSUrl没有正确转换

时间:2010-08-04 18:24:07

标签: objective-c nsstring nsurl

所以我试图从来自URL的XML流中检索数据。此URL在用户输入的搜索字符串上配置。这个代码不应该有效吗?

NSString *searchString = "Geoff";

NSString *updatedURL = [NSString stringWithFormat:@"http://mysearchpage.com/searchQuery=%@", searchString];

NSLog(updatedURL);
NSURL *url = [[NSURL alloc] initWithString:updatedURL];

现在这适用于单字搜索,但是一旦我尝试搜索名字和姓氏,URL每次都会返回nil。是否有可能导致该字符串的字符串的行为?

我甚至试图在附加搜索字符串时用“%20”替换“”,以查看是否存在问题。我是这样做的:

NSURL *url = [[NSURL alloc] initWithString:[updatedURL stringByReplacingOccurrencesOfString:@" " withString:@"%%20"]];

任何想法?提前谢谢!

2 个答案:

答案 0 :(得分:11)

你应该使用NSString的-stringByAddingPercentEscapesUsingEncoding:方法:

NSURL *url = [[NSURL alloc] initWithString:
   [updatedURL stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];

答案 1 :(得分:0)

如果这确实是副本&粘贴代码,可能是因为searchString缺少@ - 符号。这应该是NSString *searchString = @"Geoff";