2011-04-30 120 views
9

我有一個我的網址字符串..我想從該網址獲取數據。爲此我需要創建NSURL的對象。問題是,當我嘗試使用NSURL類的方法URLWithString時,它返回nil。但是當我在我的Mac的Safari中打開這個鏈接時,它會顯示我的圖像。NSURL URLWithString:myString返回Nil?

我使用..

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]; 

我不知道爲什麼網址是零。我想因爲我的字符串中的查詢字符串。

任何想法如何從此Url字符串中獲取數據。

感謝

回答

32

您的網址是零,因爲它包含特殊字符,請使用此下面的函數來編碼您的網址參數的URL使用它們之前 -

-(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]; 
} 
+0

我知道這是晚了一天,但謝謝非常多的這個 - 也解決了我的問題。 – Robert 2012-11-13 17:03:03