【问题标题】:Why is ABCreateStringWithAddressDictionary not giving detailed name?为什么 ABCreateStringWithAddressDictionary 没有给出详细的名称?
【发布时间】:2015-07-09 03:36:08
【问题描述】:

我正在使用 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 中,但我将其翻译为 swift。它在某种程度上有效,但在某些地址的情况下它会给我一个错误。 有没有另一种方法来解决这个问题? ABCreateStringWithAddressDictionary 应该给出这样的结果吗?

谢谢,

编辑:例如,当我搜索 Hamra,beirut,lebanon 时,它给了我(Hamra Street),第二种方法给了我所需的地址(Hamra Street,Beirut,Lebanon)。

【问题讨论】:

    标签: ios swift mkmapview mapkit geocoding


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-05-29
      • 2018-09-18
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 1970-01-01
      • 2020-04-18
      • 2022-07-20
      • 2017-09-15
      相关资源
      最近更新 更多