Tag: abaddressbook

iOS在数组中获取所选联系人的电子邮件地址

我想要做的是向用户显示人员select器,让他select他想要的所有联系人,最后将所有联系人的电子邮件地址都放在一个数组中。 最好的是只显示给用户的电子邮件联系人。 直到现在,我所能做的唯一事情就是向用户提供这个代码: ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init]; picker.peoplePickerDelegate = self; [self presentModalViewController:picker animated:YES]; 然后我试图使用此代码来获取选定的联系人的电子邮件: – (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person { ABMultiValueRef multi = ABRecordCopyValue(person, kABPersonEmailProperty); [email addObject:(__bridge NSString*)ABMultiValueCopyValueAtIndex(multi, 0)]; [self dismissModalViewControllerAnimated:YES]; return YES; } 但是,一旦我select一个联系人,选取器就会消失,所以我不知道如何继续。 此外,当我select一个联系人时,我在控制台中得到这个: "Unbalanced calls to begin/end appearance transitions for <ABMembersViewController: 0xa1618c0>." 任何帮助,将不胜感激。

以编程方式更改ABAddressBook中的链接联系人数组,ABPersonCopyArrayOfAllLinkedPeople

是否可以编程方式添加/删除由ABPersonCopyArrayOfAllLinkedPeople返回的CFArray中的联系人,从而有效地链接和取消链接来自各种来源的联系人的不同logging以在iOs电话簿中显示为“统一”?

用户访问地址簿时发生崩溃报告

在我的应用程序中,Crashlytics用于收集用户的崩溃报告。 这是来自用户的一个崩溃报告。 这可能取决于用户的联系人信息。 我不能重新创build崩溃,因为我不知道他/她的联系人是什么。 有没有人对这种情况有所了解? com.apple.root.default-priority Crashed 0 CoreFoundation CFStringCreateCopy + 13 1 AppSupport CPSqliteDatabaseCreateWithPath + 36 2 AppSupport CPSqliteDatabaseCreateWithPath + 36 3 AppSupport CPRecordStoreGetDatabase + 16 4 AppSupport _getReaderConnection + 10 5 AppSupport CPRecordStoreProcessQueryWithBindBlock + 22 6 AppSupport CPRecordStoreCopyAllInstancesOfClassWhereWithBindBlock + 98 7 AddressBook ABCCopyArrayOfAllPeopleInSourceWithSortOrdering + 244 8 SeeYouKee PhoneNumberInputViewController.m line 538-[PhoneNumberInputViewController dofetchContacts:] 9 AddressBook […]

ABRecordCopyValue和ABPropertyID崩溃

我试图从iPhone通讯录检索数据,我有一些问题。 首先,我有一个所有联系人的数组( self.allContacts ): ABAddressBookRef abRef = ABAddressBookCreate(); self.allContacts = (NSMutableArray*)ABAddressBookCopyArrayOfAllPeople(abRef); 我也有一个名为self.allKeys的所有属性(每个属性作为string)的self.allKeys 。 当我尝试从self.allKeys使用属性来获取属性时发生崩溃: NSString *currentRecord = [[NSString alloc] init]; ABRecordRef currentRecordRef; ABPropertyID currentFieldProperty; currentRecordRef = (ABRecordRef)[self.allContacts objectAtIndex:i]; currentFieldProperty = (ABPropertyID)[self.allKeys objectAtIndex:j]; currentRecord = (NSString*)ABRecordCopyValue(currentRecordRef, currentFieldProperty); 问题是将currentFieldProperty传递给ABRecordCopyValue会导致崩溃。 self.allContacts是所有联系人的数组 self.allKeys是所有属性的数组(每个属性都是string) 当试图从ABRecordCopyValue检索单个属性时,会导致EXC_BAD_ACCESS崩溃。 谢谢!

IOS地址簿不是从联系人列表中获取所有的电话号码

我在我的iOS应用程序中使用Addressbook来获取联系人姓名和号码,但是一个奇怪的事情发生,它显示了一些联系人的电话号码。 我希望它会显示与电话号码的所有联系人列表。 所以这里是我的代码来获取电话号码: -(void)getAddressbookData { #if __IPHONE_OS_VERSION_MIN_REQUIRED < 60000 ABAddressBookRef addressBook = ABAddressBookCreate(); #else CFErrorRef *error = nil; ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, error); #endif NSArray * people; BOOL accessGranted = [self __addressBookAccessStatus:addressBook]; if (accessGranted) { people = (__bridge_transfer NSArray*)ABAddressBookCopyArrayOfAllPeople(addressBook); // Do whatever you need with thePeople… } CFIndex nPeople = ABAddressBookGetPersonCount(addressBook); NSMutableArray *contactArray = [[NSMutableArray […]

iOS 6地址簿空kABPersonPhoneProperty

在我的代码中,我使用ABPeoplePickerNavigationController来select人员。 用户从联系人列表中select人员后,我查看指定的人员logging是否有任何电话号码: – (BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person { ABMutableMultiValueRef phones; phones = ABRecordCopyValue(person, kABPersonPhoneProperty); if (phones == nil || ABMultiValueGetCount(phones) == 0) { return NO; } // other code…. } 我创build了联系人,添加了电话号码并testing了我的代码。 在iOS 5中,此代码运行良好。 手机variables包含一个电话号码。 但在iOS 6中,将联系人链接到Facebook帐户后, 电话variables不包含任何值。 解除与facebook帐户的联系后,一切运作良好。 我怎样才能读取这个方法的人电话号码? – (BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person UPD 如果我在上面的函数中返回YES,那么在函数中 (BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier 我可以正常阅读所有人的电话号码。 那么为什么我不能在第一个函数中读取它们呢?

在ABPeoplePickerNavigationController中自定义表格单元格

我花了一些时间寻找这个答案,但无法find它,所以在这里: 我从一个ABPeoplePickerNavigationController开始,当用户点击一个人时,他们将被带到一个ABPersonViewController,他们将能够select电话号码和电子邮件地址。 在完成ABPersonViewController之后,他们将被带回到ABPeoplePickerNavigationController。 很简单的东西。 我想要的是在select电话号码或电子邮件地址后,将细节标签添加到他们在ABPeoplePickerNavigationController中select的表格单元格。 像“select电子邮件和电话号码”或“电话号码select”。 苹果的文档说: 你不应该需要这些控制器的子类。 预期的方式来修改他们的行为是通过你的代表实现。 提供的委托方法不会处理这个。 有没有什么办法可以做到这一点,而不需要自己的子类? 而且,如果我必须inheritanceABPeoplePickerNavigationController的子类,那么我会覆盖哪个方法来更新detailLabel? 谢谢!

iOS – 如何使用ABSourceType |search“可search的”ABSource kABSourceTypeSearchableMask

有没有人曾经成功地使用ABAddressBook框架或其他方式在链接到iOS设备的Exchange GAL中search名称? 我已经设法从设备上存储的联系人中获取所有名字 – 这一点很简单 – 但是它不包括Exchange GAL中的名字。 我也设法得到GAL的ABSource。 它的types是: kABSourceTypeExchangeGAL = kABSourceTypeExchange | kABSourceTypeSearchableMask kABSourceTypeExchangeGAL = kABSourceTypeExchange | kABSourceTypeSearchableMask 这表明,源是可search的,因为kABSourceTypeSearchableMask位已设置( kABSourceTypeSearchableMask = 0x01000000 ),但如何search它是任何人的猜测? 文件几乎不存在。 有类似的下面列出的计算器问题,但没有一个提供了解决scheme。 使用iOS通讯录API来search交换联系人 ABAddressBook – searchExchange地址簿源? ABAddressBook ABSource和ABSourceType ABAddressBookCopyArrayOfAllPeopleInSource(addressBook, sourceToSearch)总是为包含types位kABSourceTypeSearchableMask源返回一个空数组,这意味着您必须按名称search,而不是返回“所有人”,因为全局地址列表可能有成千上万的人它,所以我不希望它把它们全部归还。 联系人应用程序允许您按名称search,并只显示匹配的。 在“收件人:”文本字段中input文本时,邮件应用程序也一样。

ABRecordID是识别唯一联系人的可靠方法吗?

我的应用上传联系人,并在未来,将需要更新他们。 使用ABRecordID是一种可靠的方法来识别人,或者是否有可能为新logging获取已删除logging的ID? 为了优化上传,我只想上传自上次上传以来修改或创build的logging。 我目前正在使用核心数据存储该联系人的副本。 我想减less我的应用程序的足迹,并加快扫描通过人的地址簿寻找修改/新的联系人的执行时间,并限制需要上传的金额。 通过分析一些人的地址簿,联系人的数量可以从30到30,000左右。 处理30,000个联系人是一场噩梦。

如何sortingiPhone通讯录?

我如何sorting(或检索sorting的数组)一个iPhone通讯录的名字和姓氏编程? 任何帮助将不胜感激…! 谢谢