IOS stringWithContentsOfURL返回null

时间:2014-10-21 17:34:36

标签: ios null webkit

下面是我的一段代码:

NSString * escAddress = [fromLocation stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; //1
NSString * request = [NSString stringWithFormat:@"http://maps.google.com/maps/api/geocode/json?sensor=false&address=%@", escAddress]; //2
NSLog(@"%@", request); //3
NSString * result = [NSString stringWithContentsOfURL:[NSURL URLWithString:request] encoding:NSUTF8StringEncoding error:nil]; //4
NSLog(@"%@", result); //5

第3行的输出是正确的。它将读作:

http://maps.google.com/maps/api/geocode/json?sensor=false&address=stack%20overflow%20.%20com

如果escAddress中的字符串是“stack overflow.com”。

问题似乎在第4行。我不确定为什么,但它一直返回null。我可以从第3行的输出中复制并粘贴URL,将其粘贴到我的浏览器中,然后获得我需要的相关信息。那么为什么不将它放入字符串?我之前使用过这种方法,现在我已经更新到Xcode 6了,它停了。

2 个答案:

答案 0 :(得分:0)

如果地址格式错误,服务将返回:" NSCocoaErrorDomain Code = 262"等等。如果它是正确的街道地址,而不是域地址,则可以正常工作。我查看了我的街道地址,用%20替换了所有空格并且它有效。如果我无法替换空格,则会收到错误代码262。

街道地址我的意思是(例子):
100 Main Street, Anytown, ST ZCode
编码为:
100%20Main%20Street,%20Anytown,%20ST%20ZCcode

http://maps.google.com/maps/api/geocode/json?sensor=false&address=100%20Main%20Street,%20Anytown,%20ST%20ZCcode

答案 1 :(得分:0)

原来这不是程序或防火墙。它是Xcode或模拟器。退出两个,重新打开。工作得很好。由于它只是在更新到Xcode 6之后才开始,我觉得有些东西已经改变了。那好吧。不知道为什么会这样。它的工作虽然。