0

在以下代码中,我收到错误消息:ARC 不允许将“NSStringEncoding”(又名“unsigned long”)隐式转换为“NSCharacterSet * _Nonnull”

我在哪里做错了?

NSURL *candidatesURL = [NSURL URLWithString:[str_url
                                             stringByAddingPercentEncodingWithAllowedCharacters:NSUTF8StringEncoding]];
4

1 回答 1

0

您使用了错误的方法。而不是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]];
于 2017-11-03T04:44:14.990 回答