iOS - 特定于应用的地址簿

时间:2012-10-30 13:36:39

标签: ios6

我想使用“联系人”应用的外观/功能在我的应用中显示公司员工列表。这些员工不应该被放入电话用户的地址簿中,而应该是独立的应用程序特定列表。

似乎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);

0 个答案:

没有答案