獲取通訊錄

加入這兩個庫

AddressBook.framework

AddressBookUI.framework


引入這頭文件

#import <AddressBook/AddressBook.h>

#import <AddressBookUI/AddressBookUI.h>


//讀取所有聯繫人


-(void)ReadAllPeoples


{

    

    //取得本地通信錄名柄

    

    ABAddressBookRef tmpAddressBook = nil;

    

    if ([[UIDevice currentDevice].systemVersion floatValue]>=6.0) {

        tmpAddressBook=ABAddressBookCreateWithOptions(NULL, NULL);

        dispatch_semaphore_t sema=dispatch_semaphore_create(0);

        ABAddressBookRequestAccessWithCompletion(tmpAddressBook, ^(bool greanted, CFErrorRef error){

            dispatch_semaphore_signal(sema);

        });

        

        dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);

        dispatch_release(sema);

    }

    else

    {

        tmpAddressBook =ABAddressBookCreate();

    }

    //取得本地所有聯繫人記錄

    

    

    if (tmpAddressBook==nil) {

        return ;

    };

    NSArray* tmpPeoples = (NSArray*)ABAddressBookCopyArrayOfAllPeople(tmpAddressBook);

    

    for(id tmpPerson in tmpPeoples)

        

    {

        

        //獲取的聯繫人單一屬性:First name

        

        NSString* tmpFirstName = (NSString*)ABRecordCopyValue(tmpPerson, kABPersonFirstNameProperty);

        

        NSLog(@"First name:%@", tmpFirstName);

        

        [tmpFirstName release];

        

        //獲取的聯繫人單一屬性:Last name

        

        NSString* tmpLastName = (NSString*)ABRecordCopyValue(tmpPerson, kABPersonLastNameProperty);

        

        NSLog(@"Last name:%@", tmpLastName);

        

        [tmpLastName release];

        

        //獲取的聯繫人單一屬性:Nickname

        

        NSString* tmpNickname = (NSString*)ABRecordCopyValue(tmpPerson, kABPersonNicknameProperty);

        

        NSLog(@"Nickname:%@", tmpNickname);

        

        [tmpNickname release];

        

        //獲取的聯繫人單一屬性:Company name

        

        NSString* tmpCompanyname = (NSString*)ABRecordCopyValue(tmpPerson, kABPersonOrganizationProperty);

        

        NSLog(@"Company name:%@", tmpCompanyname);

        

        [tmpCompanyname release];

        

        //獲取的聯繫人單一屬性:Job Title

        

        NSString* tmpJobTitle= (NSString*)ABRecordCopyValue(tmpPerson, kABPersonJobTitleProperty);

        

        NSLog(@"Job Title:%@", tmpJobTitle);

        

        [tmpJobTitle release];

        

        //獲取的聯繫人單一屬性:Department name

        

        NSString* tmpDepartmentName = (NSString*)ABRecordCopyValue(tmpPerson, kABPersonDepartmentProperty);

        

        NSLog(@"Department name:%@", tmpDepartmentName);

        

        [tmpDepartmentName release];

        

        //獲取的聯繫人單一屬性:Email(s)

        

        ABMultiValueRef tmpEmails = ABRecordCopyValue(tmpPerson, kABPersonEmailProperty);

        

        for(NSInteger j = 0; ABMultiValueGetCount(tmpEmails); j++)

            

        {

            

            NSString* tmpEmailIndex = (NSString*)ABMultiValueCopyValueAtIndex(tmpEmails, j);

            

            NSLog(@"Emails%d:%@", j, tmpEmailIndex);

            

            [tmpEmailIndex release];

            

        }

        

        CFRelease(tmpEmails);

        

        //獲取的聯繫人單一屬性:Birthday

        

        NSDate* tmpBirthday = (NSDate*)ABRecordCopyValue(tmpPerson, kABPersonBirthdayProperty);

        

        NSLog(@"Birthday:%@", tmpBirthday);

        

        [tmpBirthday release];

        

        //獲取的聯繫人單一屬性:Note

        

        NSString* tmpNote = (NSString*)ABRecordCopyValue(tmpPerson, kABPersonNoteProperty);

        

        NSLog(@"Note:%@", tmpNote);

        

        [tmpNote release];

        

        //獲取的聯繫人單一屬性:Generic phone number

        

        ABMultiValueRef tmpPhones = ABRecordCopyValue(tmpPerson, kABPersonPhoneProperty);

        

        for(NSInteger j = 0; j < ABMultiValueGetCount(tmpPhones); j++)

            

        {

            

            NSString* tmpPhoneIndex = (NSString*)ABMultiValueCopyValueAtIndex(tmpPhones, j);

            

            NSLog(@"tmpPhoneIndex%d:%@", j, tmpPhoneIndex);

            

            [tmpPhoneIndex release];

            

        }

        

        CFRelease(tmpPhones);

        

    }

    

    //釋放內存

    

    [tmpPeoples release];

    

    CFRelease(tmpAddressBook);

    

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章