如何显示电话号码和电子邮件以及用户名?

时间:2013-03-29 07:43:11

标签: ios objective-c abpersonviewcontroller abrecordref

这就是我的尝试:

-(void) vDisplayPerson:(ABRecordRef)person
{
    ABPersonViewController *picker = [[ABPersonViewController alloc] init] ;
    picker.personViewDelegate = self;
    picker.displayedPerson = person;
    picker.displayedProperties=@[@(kABPersonPhoneProperty),@(kABPersonEmailProperty),@(kABPersonBirthdayProperty),@(kABPersonOrganizationProperty),@(kABPersonJobTitleProperty),@(kABPersonDepartmentProperty),@(kABPersonNoteProperty),@(kABPersonCreationDateProperty)];
    // Allow users to edit the person’s information
    picker.allowsEditing = YES;
    [self.navigationController pushViewController:picker animated:YES];

}

注意我已设置displayedProperties以包含许多内容。电话。人。生日。然而,只有姓名和职位出现。

我想显示人们用来查看联系人的同类信息。在iOs6中不再可能了吗?

更新:我强烈怀疑问题不在显示屏上,而是由于某种原因,整个人记录根本不包含电话号码。那是因为我可以编辑联系人,添加电话号码和电话号码。但是,更新不会传播到“真实”联系人。在我的程序上进行的更新不会传播到真正的联系人。真实联系人的更新make不会显示在我的程序中。

我正在使用CFArrayRef refAllPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);

顺便说一句,这是在iPhone 5.1模拟器中。

1 个答案:

答案 0 :(得分:0)

这里的关键是不能发布对ABAddressBookCreate结果的引用。所以我创建了一个属性@property (nonatomic) ABAddressBookRef addressBook;并且只在dealloc中释放它(在程序结束之前不会被调用)。

这可以解决问题。