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 に答える