为什么ABCreateStringWithAddressDictionary不提供详细名称?

时间:2015-07-09 03:36:09

标签: ios swift mkmapview mapkit geocoding

我正在使用swift进行iOS编程。 我正在从用户那里获取位置字符串地址输入并返回地理编码结果供他选择。 我遇到的问题是,当我想向用户显示我要向他显示完整地址(姓名,城市,国家)或(城市,国家)的地址时。 所以我检查并发现ABCreateStringWithAddressDictionary函数是获取格式化地址的标准。 但是,使用该功能只给我一个位置的名字(名称,城市,国家/地区的名称)位置

cell.textLabel?.text = ABCreateStringWithAddressDictionary(returnedQueryLocations[indexPath.row].addressDictionary, true).

这不是返回完整地址。 在线找到另一种解决方案

var lines : AnyObject = returnedQueryLocations[indexPath.row].addressDictionary[ "FormattedAddressLines"]!
    var addressString : NSString = lines.componentsJoinedByString(", ")

这是在客观C中,但我将其翻译为迅捷。它在某种程度上起作用,但在某些地址的情况下它给我一个错误。 还有另一种解决方法吗? ABCreateStringWithAddressDictionary应该给出这样的结果吗?

谢谢,

编辑:例如,当我搜索哈姆拉,贝鲁特,黎巴嫩时它给我(哈姆拉街)第二种方法给了我所需的地址(哈姆拉街,贝鲁特,黎巴嫩)。

1 个答案:

答案 0 :(得分:0)

ABCreateStringWithAddressDictionary()返回的字符串使用换行符分隔其组件。文本字段仅显示第一行。在设置文本字段之前,请用逗号替换换行符:

var addressString = ABCreateStringWithAddressDictionary(returnedQueryLocations[indexPath.row].addressDictionary, true)
addressString = addressString.stringByReplacingOccurrencesOfString("\n", withString: ", ")
cell.textLabel?.text = addressString