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
相关产品推荐
相关产品推荐

