通常为编码格式问题,默认的string无法转带有中文字符的URL
NSString *str = @“中文”;
str = [str stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
这时候在转URL就不会有问题了。
另外,旧版本使用的是
[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
stringByAddingPercentEscapesUsingEncoding,在ios9.0之后被stringByAddingPercentEncodingWithAllowedCharacters替换了。
如果URL真实存在,但是当发送请求的时候,仍然报URL为nil的问题。
解决办法是将项目中info中添加下图内容。其中App Transport Security Settings 为Dictionary类型,然后在点击该词条后面的加号,添加Allow Arbitrary Loads 类型为Boolean。并将该值设置为YES。
注意,可能项目中含有多个info,要在生效的info中添加才有效果。