2013-03-29 1 views
0

Это то, что я пробовал:Как отображать номера телефонов и адрес электронной почты и имена пользователей?

-(void) vDisplayPerson:(ABRecordRef)person 
{ 
    ABPersonViewController *picker = [[ABPersonViewController alloc] init] ; 
    picker.personViewDelegate = self; 
    picker.displayedPerson = person; 
    [email protected][@(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?

Обновление: Я сильно подозревал, что проблема не на дисплее, а тот факт, что по какой-либо причине запись всего человека просто не содержит номера телефона. Это потому, что я могу редактировать контакт, добавить номер телефона и номер телефона. Однако обновление не распространяется на «настоящий» контакт. Обновление, сделанное в моей программе, не распространяется на реальный контакт. Обновление в реальном контакте не отображается в моей программе.

Я использую CFArrayRef refAllPeople = ABAddressBookCopyArrayOfAllPeople (адресная книга);

Это, кстати, в iPhone 5.1.

+0

Я НЕ пытаюсь получить адреса электронной почты и номера телефонов. Я просто хочу отобразить его с помощью ABPersonViewController. –

+1

Я уверен, что это связано с новой системой разрешений. Вам нужно запросить доступ к базе данных контактов с iOS 6.0, но я не уверен, что это применимо в этом случае или нет ... – borrrden

+0

Это тоже не работает в симуляторе ios 5.1. –

ответ

0

Ключ здесь в том, что ссылка на результат ABAddressBookCreate еще не должна быть выпущена. Поэтому я создал свойство @property (nonatomic) ABAddressBookRef addressBook; и выпустил его только последним в dealloc (который не будет вызываться до конца программы).

Это исправить проблему.