2009-12-09 4 views
2

В настоящее время я могу успешно получить и получить данные из peoplePickerNavigationController, но то, что я хотел бы сделать, - это получить адрес электронной почты контакта, тогда модальное окно отклоняется, когда контакт имя нажата.Получить адрес электронной почты от адресной книги iPhone

Сценарий:

"Button is clicked to add a contact 
AddressBook Modal Window slides into view 
Name of Contact is pressed 
If available, the contact's email address is stored in an array 
Dismiss modal window" 

Мой текущий код состоит из:

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier { 
    ABMultiValueRef container = ABRecordCopyValue(person, property); 
    CFStringRef contactData = ABMultiValueCopyValueAtIndex(container, identifier); 
    CFRelease(container); 
    NSString *contactString = [NSString stringWithString:(NSString *)contactData]; 
    CFRelease(contactData); 

    NSLog(@"Value is: %@", contactString); 

    [self dismissModalViewControllerAnimated:YES]; 
    return NO; 
} 

ответ

5

Вот что я делаю.

if(property == kABPersonEmailProperty) { 
    CFTypeRef prop = ABRecordCopyValue(person, property); 
    CFIndex index = ABMultiValueGetIndexForIdentifier(prop, identifierForValue); 
    NSString *email = (NSString *)ABMultiValueCopyValueAtIndex(prop, index); 

    ... 

    CFRelease(prop); 
    [email release]; 
} 
+0

теперь я положил это в 'peoplePickerNavigationController: shouldContinueAfterSelectingPerson: Свойство: идентификатор:' метод? Поскольку это делает то же самое, код, который я предоставил, делает ... – rson

+0

Извините, да, это должно быть в методе, тогда, если вы открыли PeoplePicker по модулю, вам нужно уволить его, как вы уже выше. –

Смежные вопросы