2015-11-05 54 views
-1

這是我的代碼,並在我的URL字符串空格不是由代碼字符串修改不起作用?

NSString *str = item.fileArtPath; 
NSCharacterSet *set = [NSCharacterSet URLQueryAllowedCharacterSet]; 
[str stringByAddingPercentEncodingWithAllowedCharacters:set]; 
[str stringByReplacingOccurrencesOfString:@" " withString:@"%20"]; 
NSURL *urlString = [NSURL URLWithString:str]; 

下面的字符串編碼:

http://xx.xx.xx.xxx:xx/xx/xx/xx/xxx/Audio Adrenaline.jpg 
            ^^^^^^^^^^^^^^^^^^^^ 

我用過之後Audio後的空格不會被轉換爲%20字符串替換。而在調試urlStringnil爲什麼這麼說?

回答

1

從NSString類參考

通過不替換在指定的設定百分比編碼字符的所有字符 返回從接收器製成的新的字符串。

這意味着它不會調用它所調用的實例。你需要這樣說str = [str stringByAddingPercentEncodingWithAllowedCharacters:set];同樣的,[str stringByReplacingOccurrencesOfString:@" " withString:@"%20"];

1

回想一下,NSString不變。調用方法stringBy...返回修改的字符串,而不是修改原來的字符串。因此,您的代碼應改寫如下:

str = [str stringByAddingPercentEncodingWithAllowedCharacters:set]; 
str = [str stringByReplacingOccurrencesOfString:@" " withString:@"%20"]; 
1
NSString *search = [searchBar.text stringByReplacingOccurrencesOfString:@" " withString:@"%20"];