1

用 显示人员选择器ABPeoplePickerNavigationController,我可以通过以下方式在字典中获取所选人员的地址:

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier {
    if (property == kABPersonAddressProperty) {
        ABMultiValueRef addressMultiValue = ABRecordCopyValue(person, kABPersonAddressProperty);    

        NSDictionary *address = (NSDictionary *)CFBridgingRelease(ABMultiValueCopyValueAtIndex(addressMultiValue, ABMultiValueGetIndexForIdentifier(addressMultiValue, identifier)));

    }

    [self dismissModalViewControllerAnimated:YES];

    return NO;
}

根据国家/地区的不同,有关如何格式化此地址的约定是不一样的。
有没有办法获取选择器显示的地址字符串(类似于 Contacts.app 显示的内容)?

4

1 回答 1

2

正如您在 Contacts.app 中看到的那样,我不确定如何动态创建一组可编辑的地址字段,但 AddressBookUI 中有一个实用功能,可让您将地址字典格式化为特定于区域的地址字符串:ABCreateStringWithAddressDictionary. 此功能依赖于正确设置的国家代码值;如果缺少此值会发生什么,未指定。

于 2012-07-09T17:15:48.160 回答