gpt4 book ai didi

iphone - 如何从 ABAddressBookRef 中提取国家/地区字段?

转载 作者:行者123 更新时间:2023-12-03 19:05:26 36 4
gpt4 key购买 nike

我无法理解如何访问 ABAddressBookRef 中地址的属性。我用电话号码就可以了:

ABMultiValueRef phoneNumberProperty = ABRecordCopyValue(person, kABPersonPhoneProperty);
NSArray* phoneNumbers = (NSArray*)ABMultiValueCopyArrayOfAllValues(phoneNumberProperty);
CFRelease(phoneNumberProperty);

但是唉...我不知道如何处理地址。如果我这样做:

ABMultiValueRef addressProperty = ABRecordCopyValue(person, kABPersonAddressProperty);
NSArray *address = (NSArray *)ABMultiValueCopyArrayOfAllValues(addressProperty);

我得到了看起来像字典的内容,但它的类型是数组。我如何访问其中的属性?我在网上看到了很多不同的建议,但它们似乎都涉及大约 30 行代码,只是为了从字典中提取一行!

有人可以帮忙吗?谢谢!

最佳答案

对于地址,您将获得一个字典数组,因此您可以循环遍历该数组并从每个字典中提取所需的键值:

ABMultiValueRef addressProperty = ABRecordCopyValue(person, kABPersonAddressProperty);
NSArray *address = (NSArray *)ABMultiValueCopyArrayOfAllValues(addressProperty);
for (NSDictionary *addressDict in address)
{
NSString *country = [addressDict objectForKey:@"Country"];
}
CFRelease(addressProperty);

您还可以直接循环遍历ABMultiValueRef,而不是先将其转换为 NSArray:

ABMultiValueRef addressProperty = ABRecordCopyValue(person, kABPersonAddressProperty);

for (CFIndex i = 0; i < ABMultiValueGetCount(addressProperty); i++)
{
CFDictionaryRef dict = ABMultiValueCopyValueAtIndex(addressProperty, i);
NSString *country = (NSString *)CFDictionaryGetValue(dict, kABPersonAddressCountryKey);
CFRelease(dict);
}

CFRelease(addressProperty);

关于iphone - 如何从 ABAddressBookRef 中提取国家/地区字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6492604/

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