NSURL无法解析带有|符号的URL?

NSURL *url = [NSURL URLWithString:@"http://ac-g405gbtt.clouddn.com/NT326NQNJZ3DkQo4V3VRG7B?auto-orient|imageInfo"];

NSLog(@"url : %@",url);// url : (null)

为什么url中带有 | 生成的NSURL会为nil?
怎么解决?

阅读 5.9k
2 个回答

请尝试如下代码:

// 原始URL
NSString *urlString = @"http://ac-g405gbtt.clouddn.com/NT326NQNJZ3DkQo4V3VRG7B?auto-orient|imageInfo";

// 经过转义的URL
NSString *newUrlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURL *url = [NSURL URLWithString:newUrlString];

NSLog(@"url : %@",url);

URLstring返回的为网页源码,你提供的URL地址无法生成源码,直接返回nil。(参见官方文档)
Return Value
An NSURL object initialized with URLString. If the URL string was malformed or nil, returns nil.
如果URLstring为nil时返回的为nil
应先转换再使用,如上楼所示

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题