NSURL URLWithString:myString返回Nil?

时间:2011-04-30 05:53:10

标签: iphone objective-c nsurl

我有一个我的网址字符串..我想从该网址获取数据。为此,我需要创建NSURL的对象。问题是当我尝试NSURL类的URLWithString方法时,它返回nil。但是当我在My Mac的Safari中打开此链接时,它会显示图像。

我正在使用..

NSString *str = @"http://chart.apis.google.com/chart?chs=150x150&cht=qr&chld=L|0&chl=http://MyServer.com/shareMyCard.php?value=1304057103";
NSURL *url = [NSURL URLWithString:str];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *img = [UIImage imageWithData:data];

我不知道为什么网址为Nil。我想因为我的字符串中的查询字符串。

任何想法如何从此Url字符串中获取数据。

由于

1 个答案:

答案 0 :(得分:32)

您的网址为零,因为它包含特殊字符,在网址中使用之前,请使用以下函数对您的网址参数进行编码 -

-(NSString *) URLEncodeString:(NSString *) str
{

    NSMutableString *tempStr = [NSMutableString stringWithString:str];
    [tempStr replaceOccurrencesOfString:@" " withString:@"+" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [tempStr length])];


    return [[NSString stringWithFormat:@"%@",tempStr] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}