2015-11-05 30 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"];