首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ABRecordRef检索地址

从ABRecordRef检索地址
EN

Stack Overflow用户
提问于 2014-10-10 18:46:28
回答 2查看 912关注 0票数 1

我需要得到的地址信息,以计算航运和税率的采购项目在我的应用程序。我想使用Apple,因此我收到了作为ABRecordRef实例的记录。我试过了

代码语言:javascript
复制
NSString *zip = (__bridge NSString *)(ABRecordCopyValue(address, kABPersonAddressZIPKey));

但它会导致EXC_BAD_ACCESS。我相信应该有办法让它起作用,有人知道吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-13 14:41:10

终于弄明白了:

代码语言:javascript
复制
CFTypeRef addressProperty = ABRecordCopyValue((ABRecordRef)address, kABPersonAddressProperty);
NSDictionary *addressDict = (__bridge NSDictionary *)CFArrayGetValueAtIndex((CFArrayRef)ABMultiValueCopyArrayOfAllValues(addressProperty), 0);

由此产生的字典如下所示:

代码语言:javascript
复制
{
    City = Hillsborough;
    CountryCode = us;
    State = CA;
    ZIP = 94010;
}
票数 1
EN

Stack Overflow用户

发布于 2014-10-10 20:19:13

假设您有联系人的记录标识符,并且希望检索地址。你的代码如下所示,

代码语言:javascript
复制
ABRecordRef address[1];
address[0] = ABAddressBookGetPersonWithRecordID(_addressBook, recId);
NSString *zip = (__bridge NSString *)(ABRecordCopyValue(address[0], kABPersonAddressZIPKey));

如果您正在做类似的事情,那么请在上面的代码中注意,您需要在参数中使用address而不是address来实现函数。

希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26306058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档