gpt4 book ai didi

ios - CNContacts -- 地址行 2

转载 作者:可可西里 更新时间:2023-11-01 00:56:15 28 4
gpt4 key购买 nike

我们如何获取特定联系地址的地址行 2。我能够使用

成功获取地址行 1
cnContact.postalAddresses.first?.value.street

我们使用什么属性来获取地址行 2?

此外,我们如何优先显示家庭地址而不是工作地址​​?这可能吗?

最佳答案

如果你想按特定顺序对地址进行排序,你可以这样做:

let addresses = contact.postalAddresses.sorted { (address1, address2) -> Bool in
return self.labelOrder(address1.label) < self.labelOrder(address2.label)
}

在哪里

let labelPreferredOrder = [CNLabelHome, CNLabelWork, CNLabelPhoneNumberMobile, CNLabelPhoneNumberiPhone]

private func labelOrder(_ label: String?) -> Int {
if let label = label, let index = labelPreferredOrder.index(of: label) {
return index
}
return labelPreferredOrder.count + 1
}

您可能还想添加一些硬编码标签前缀,以防用户使用他们自己的硬编码值,或者如果联系人可能是从未使用本地化标准联系人的第三方来源导入的前缀:

let labelPreferredOrder = [CNLabelHome, "Home", "home", CNLabelWork, "Work", "work", CNLabelPhoneNumberMobile, "Mobile", "mobile", "Cell", "cell", CNLabelPhoneNumberiPhone]

最重要的是,按照您想要的方式对这些进行排序。请注意,您不需要地址的电话相关标签,但如果您想使用类似技术对电话号码进行排序,则可以包含它们。


要获取数组中街道地址的行(您可以在其中分别获取第 1 行和第 2 行,将其拆分 \n:

let streetLines = address.value.street.split(separator: "\n")

然后一个两行的街道地址将被呈现为一个字符串数组

["123 Main Street", "Suite 100"]

关于ios - CNContacts -- 地址行 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47524042/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com