How to acess contacts of iPhone in IOS 6

后端 未结 3 1444
一整个雨季
一整个雨季 2021-01-03 16:53

I want to show contacts and details of contacts in my application.List of contacts and after selecting any contact details of that contact will show on next page using addre

3条回答
  •  被撕碎了的回忆
    2021-01-03 17:19

    Following code for retrieving contact details.

    - (void)viewDidLoad {
        [super viewDidLoad];
        contactList=[[NSMutableArray alloc] init];
        ABAddressBookRef m_addressbook = ABAddressBookCreate();
    
        if (!m_addressbook) {
            NSLog(@"opening address book");
        }
    
        CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(m_addressbook);
        CFIndex nPeople = ABAddressBookGetPersonCount(m_addressbook);
    
        for (int i=0;i < nPeople;i++) { 
            NSMutableDictionary *dOfPerson=[NSMutableDictionary dictionary];
    
            ABRecordRef ref = CFArrayGetValueAtIndex(allPeople,i);
    
            //For username and surname
            ABMultiValueRef phones =(NSString*)ABRecordCopyValue(ref, kABPersonPhoneProperty);
            CFStringRef firstName, lastName;
            firstName = ABRecordCopyValue(ref, kABPersonFirstNameProperty);
            lastName  = ABRecordCopyValue(ref, kABPersonLastNameProperty);
            [dOfPerson setObject:[NSString stringWithFormat:@"%@ %@", firstName, lastName] forKey:@"name"];
    
            //For Email ids
            ABMutableMultiValueRef eMail  = ABRecordCopyValue(ref, kABPersonEmailProperty);
            if(ABMultiValueGetCount(eMail) > 0) {
                [dOfPerson setObject:(NSString *)ABMultiValueCopyValueAtIndex(eMail, 0) forKey:@"email"];
    
            }
    
            //For Phone number
            NSString* mobileLabel;
            for(CFIndex i = 0; i < ABMultiValueGetCount(phones); i++) {
                mobileLabel = (NSString*)ABMultiValueCopyLabelAtIndex(phones, i);
                if([mobileLabel isEqualToString:(NSString *)kABPersonPhoneMobileLabel])
                {
                    [dOfPerson setObject:(NSString*)ABMultiValueCopyValueAtIndex(phones, i) forKey:@"Phone"];
                }
                else if ([mobileLabel isEqualToString:(NSString*)kABPersonPhoneIPhoneLabel])
                {
                    [dOfPerson setObject:(NSString*)ABMultiValueCopyValueAtIndex(phones, i) forKey:@"Phone"];
                    break ;
                }
    
            [contactList addObject:dOfPerson];
            CFRelease(ref);
            CFRelease(firstName);
            CFRelease(lastName);
        }
        NSLog(@"array is %@",contactList);
        }
    }
    

    You can download sample code and find more details from the tutorial on my site.

提交回复
热议问题