在以下代码中,我收到错误消息:ARC不允许将"NSStringEncoding"(又名"无符号长")隐式转换为"NSCharacterSet * _Nonnull"
我哪里做错了?
NSURL *candidatesURL = [NSURL URLWithString:[str_url
stringByAddingPercentEncodingWithAllowedCharacters:NSUTF8StringEncoding]];
您使用了错误的方法。不要使用stringByAddingPercentEncodingWithAllowedCharacters
使用此stringByAddingPercentEscapesUsingEncoding
如果您不想使用此方法stringByAddingPercentEncodingWithAllowedCharacters
则必须传递一组允许的字符。
试试这个。
NSURL *candidatesURL = [NSURL URLWithString:[str_url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
或者,如果您的应用开发目标是 IOS 9.0 及更高版本。
stringByAddingPercentEscapesUsingEncoding
已弃用,因此您可以使用stringByAddingPercentEncodingWithAllowedCharacters
并使用URLHostAllowedCharacterSet
。
NSURL *candidatesURL = [NSURL URLWithString:[str_url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet]];