2

連絡先アプリの外観/機能を使用して、アプリに会社の従業員のリストを表示したいと思います。これらの従業員は、電話ユーザーの名簿に入れるのではなく、スタンドアロンのアプリ固有のリストにする必要があります。

ABPeoplePickerNavigationControllerがその方法であり、.addressBookプロパティをABAddressBookCreate()で作成したアドレスブックに設定できるように見えましたが、これを電話で実行すると、作成した連絡先だけでなく、すべての連絡先が読み込まれます。私のアプリのテストとして。私が作成した従業員は、電話の中央名簿にも保存されます。

ABPeoplePickerNavigationControllerを使用できるように、中央のアドレス帳と統合されていないスタンドアロンのアドレス帳を作成する方法はありますか?友達リストを見ると、Facebookはアプリで同様のことをしているように見えます。

これをゼロから構築する必要がないことを願っています。似たような質問がいくつかありますが、決定的なものはありません。

ABAddressBookRef addressBook;
CFErrorRef error = NULL;

addressBook = ABAddressBookCreate();



ABRecordRef aRecord = ABPersonCreate();
CFErrorRef anError = NULL;
bool didSet;

didSet = ABRecordSetValue(aRecord, kABPersonFirstNameProperty, CFSTR("Andy"), &anError);
if (!didSet) {/* Handle error here. */}

didSet = ABRecordSetValue(aRecord, kABPersonLastNameProperty, CFSTR("Aardvark"), &anError);
if (!didSet) {/* Handle error here. */}

CFStringRef firstName, lastName;
firstName = ABRecordCopyValue(aRecord, kABPersonFirstNameProperty);
lastName  = ABRecordCopyValue(aRecord, kABPersonLastNameProperty);

/* ... Do something with firstName and lastName. ... */
ABAddressBookAddRecord(addressBook, aRecord, &error);

CFRelease(aRecord);
CFRelease(firstName);
CFRelease(lastName);


ABAddressBookSave(addressBook, &error);


ABPeoplePickerNavigationController *picker =
[[ABPeoplePickerNavigationController alloc] init];
picker.addressBook = addressBook;
picker.peoplePickerDelegate = self;
[self presentModalViewController:picker animated:YES];
CFRelease(addressBook);
4

0 に答える 0