You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS Swift 5中如何从联系人获取邮政地址ID

获取联系人地址的唯一ID解决方案

CNLabeledValue<CNPostalAddress>(即你代码里的postalAddress)自带一个只读的identifier属性,这就是每个地址项的唯一ID,直接提取即可。

修改后的代码如下:

for postalAddress in contact.postalAddresses {
    let title: String = CNLabeledValue<NSString>.localizedString(forLabel: postalAddress.label ?? "Location")
    // 提取地址唯一ID
    let addressId = postalAddress.identifier
    addresses.append(ContactInfo.Address(
        street: postalAddress.value.street,
        city: postalAddress.value.city,
        country: postalAddress.value.country,
        postalCode: postalAddress.value.postalCode,
        state: postalAddress.value.state,
        title: title,
        latitude: 0.0,
        longitude: 0.0,
        id: addressId // 将ID传入自定义的Address模型
    ))
}

补充说明

  • identifier是CNLabeledValue的内置属性,同一个联系人下的同类型标记项(比如多个地址、多个电话)会拥有不同的唯一标识符
  • 需要确保你的ContactInfo.Address模型已经添加了对应存储ID的属性,类型为String

内容的提问来源于stack exchange,提问作者Muhammad Mustafeez Ur Rehman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 07:10:11