2012-10-01 84 views
1

我得到一切從地址簿聯繫人到我的應用程序,我只需要從選定的聯繫人獲取電子郵件地址,這裏是我的代碼電子郵件ID從地址簿

shouldContinueAfterSelectingPerson

- (BOOL)peoplePickerNavigationController: 

(ABPeoplePickerNavigationController *)peoplePicker 

     shouldContinueAfterSelectingPerson:(ABRecordRef)person { 


    // Select phone number 


    ABMultiValueRef emailProperty = ABRecordCopyValue(person, kABPersonEmailProperty); 


    NSString *email = (__bridge NSString *)(emailProperty); 

    [self dismissModalViewControllerAnimated:YES]; 

    self.view.frame = CGRectMake(0, 44, 320, 370); 


    return NO; 

} 

請幫我出這個傢伙的,在此先感謝

上午打印它下面

電子郵件串給在日誌中ABMultiValueRef 0x1eb2 DDB0 0值(S)

回答

3
CFStringRef value, label; 
ABMutableMultiValueRef multi = ABRecordCopyValue(person, kABPersonEmailProperty); 
CFIndex count = ABMultiValueGetCount(multi); 
if (count == 1) 
{ 
    value = ABMultiValueCopyValueAtIndex(multi, 0); 
    emailid = (NSString*) value; 
    NSLog(@"self.emailID %@",emailid); 
    CFRelease(value); 
} 
else 
{ 
    for (CFIndex i = 0; i < count; i++) 
    { 
     label = ABMultiValueCopyLabelAtIndex(multi, i); 
     value = ABMultiValueCopyValueAtIndex(multi, i); 

     // check for Work e-mail label 
     if (CFStringCompare(label, kABWorkLabel, 0) == 0) 
     { 
      emailid = (NSString*) value; 
      NSLog(@"self.emailID %@",emailid); 
     } 
     else if(CFStringCompare(label, kABHomeLabel, 0) == 0) 
     { 
      emailid = (NSString*) value; 
      NSLog(@"self.emailID %@",emailid); 
     } 

     CFRelease(label); 
     CFRelease(value); 
    } 
} 
CFRelease(multi); 
+0

我收到的電子郵件ID爲空,我只是複製我們的代碼.. plz幫助我的兄弟 – Joker

+0

現在顯示其顯示,但它只顯示日誌中的所有聯繫人的唯一電子郵件ID ...任何想法 – Joker

+0

oky ..tell我其他領域你得到了?或不 ??除了emailID。 – 2012-10-01 08:02:25

2

您可以添加以下代碼存取權限電子郵件的形式聯繫..

-(IBAction)Contact 
{ 
    ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init]; 
    picker.peoplePickerDelegate = self; 
     [self presentModalViewController:picker animated:YES]; 
    [picker release];} 
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker { 
    [self dismissModalViewControllerAnimated:YES]; 
} 

- (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person { 
    ABMultiValueRef emailMultiValue = ABRecordCopyValue(person, kABPersonEmailProperty); 
    NSArray *email = [(NSArray *)ABMultiValueCopyArrayOfAllValues(emailMultiValue) autorelease]; 
    CFRelease(emailMultiValue); 
    [self dismissModalViewControllerAnimated:YES];} 
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier{ 
    return NO; 
} 
相關問題