stringByAddingPercentEscapesUsingEncoding已经废弃

4

这个 "stringByAddingPercentEscapesUsingEncoding" 已经过时了,我想用更新的方法替代它。

NSString *encodedString = [modalData.imageURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSString *str = ...; // 一些URL NSCharacterSet *set = [NSCharacterSet URLHostAllowedCharacterSet]; NSString *result = [str stringByAddingPercentEncodingWithAllowedCharacters:set]; - Fahad Jamal
感谢大家的回答。 - Renuka Pandey
3个回答

5

请尝试下面这行代码:

NSString *encodedString = [modalData.imageURL stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet]];

stringByAddingPercentEncodingWithAllowedCharacters:

该方法返回一个新字符串,将接收器中不在指定字符集中的所有字符替换为百分号编码的字符。

可以将字符集传递给- stringByAddingPercentEncodingWithAllowedCharacters

+ (NSCharacterSet *)URLUserAllowedCharacterSet;
+ (NSCharacterSet *)URLPasswordAllowedCharacterSet;
+ (NSCharacterSet *)URLHostAllowedCharacterSet;
+ (NSCharacterSet *)URLPathAllowedCharacterSet;
+ (NSCharacterSet *)URLQueryAllowedCharacterSet;
+ (NSCharacterSet *)URLFragmentAllowedCharacterSet;

参考文献: https://developer.apple.com/reference/foundation/nsstring/1411946-stringbyaddingpercentencodingwit

该方法将字符串转换为百分号编码形式的字符串。它将使用指定的编码来替换在URL中不被允许的字符,例如空格和标点符号。这对于生成URL参数非常有用。

0
这段代码对我很有效:
NSString *url = [modalData.imageURL stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]];

0
请使用以下代码:
NSString *encodedString = [modalData.imageURL stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet]];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接