首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何制作包含|(竖线字符)的NSURL?

如何制作包含|(竖线字符)的NSURL?
EN

Stack Overflow用户
提问于 2010-06-15 04:23:49
回答 3查看 6.2K关注 0票数 21

我正在尝试从我的iphone应用程序访问google地图的forward地理编码服务。当我试图从一个带有管道的字符串创建一个NSURL时,我得到的结果是一个空指针。

NSURL *searchURL = [NSURL URLWithString:@"http://maps.google.com/maps/api/geocode/json?address=6th+and+pine&bounds=37.331689,-122.030731|37.331689,-122.030731&sensor=false"];

我在google api中看不到任何其他方法来发送边界坐标而不使用管道。你知道我该怎么做吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-18 23:07:58

由于stringByAddingPercentEscapesUsingEncoding已被弃用,因此您应该使用stringByAddingPercentEncodingWithAllowedCharacters

快速回答:

let rawUrlStr = "http://maps.google.com/maps/api/geocode/json?address=6th+and+pine&bounds=37.331689,-122.030731|37.331689,-122.030731&sensor=false";
let urlEncoded = rawUrlStr.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
let url = NSURL(string: urlEncoded)

编辑: Swift 3答案:

let rawUrlStr = "http://maps.google.com/maps/api/geocode/json?address=6th+and+pine&bounds=37.331689,-122.030731|37.331689,-122.030731&sensor=false";
if let urlEncoded = rawUrlStr.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) {
    let url = NSURL(string: urlEncoded)
}
票数 20
EN

Stack Overflow用户

发布于 2010-06-15 04:26:39

您是否尝试过用%7C (字符|的URL编码值)替换管道?

票数 34
EN

Stack Overflow用户

发布于 2014-01-22 23:53:11

如果你想在将来放入任何奇怪的字符都是安全的,使用stringByAddingPercentEscapesUsingEncoding方法使字符串“URL友好”...

NSString *rawUrlStr = @"http://maps.google.com/maps/api/geocode/json?address=6th+and+pine&bounds=37.331689,-122.030731|37.331689,-122.030731&sensor=false";
NSString *urlStr = [rawUrlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *searchURL = [NSURL URLWithString:urlStr];
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3040632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档