iOS反地理编码,会的到多个地址,然后选第一个CLPlacemark CLPlacemark中包含一个addressDictionary的属性,而这个字典就是我们要的地址信息,这都非常容易,但是要考虑到地址的格式问题,美国地址,和中国地址的排版顺序不一样!做本地化的时候非常不容易
这是一般的做法 用for循环把信息拼接上去
NSString *address =[[NSString alloc]init];
NSArray *formattedAddressLines =placemark[@"FormattedAddressLines"];
for (NSString *addersslines in formattedAddressLines) {
address = [address stringByAppendingString:addersslines];
};
很古老而且死板
苹果早帮我们想好了
address = ABCreateStringWithAddressDictionary(placemark, YES);
使用这个方法前要加入这个框架
你可能会这么做
但是最终会得到一个C99错误 很蛋疼;
这里是xcode7.2 这个原因我也不知道为什么但是google了下发现更好的解决办法
参考:
http://stackoverflow.com/questions/7848291/how-to-get-formatted-address-nsstring-from-addressdictionary
http://stackoverflow.com/questions/28228761/abcreatestringwithaddressdictionary-implicit-declaration