获取本地通讯录的所有联系人的信息

来源:互联网 发布:苹果怎样申请网站域名 编辑:程序博客网 时间:2024/06/05 10:22

//获取本地通讯录的所有联系人的信息:

-(void)showAllPeopleContacts

{

   ABAddressBookRef ab=ABAddressBookCreate();

   NSArray *arrTemp=(NSArray *)ABAddressBookCopyArrayOfAllPeople(ab);

    

   NSMutableArray *arrContact=[[NSMutableArrayalloc]init];

    for (int i=0;i<[arrTempcount];i++) 

    {

       NSMutableDictionary *dicContact=[[NSMutableDictionaryalloc]init];

       /*first name*/

        NSString *firstName=(NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonFirstNameProperty);

        NSLog(@"firstName=%@",firstName);

        

       /*last name*/

        NSString *lastName = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonLastNameProperty);

        NSLog(@"lastName=%@",lastName);

        

       /*middle name*/

        NSString *middleName = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonMiddleNameProperty);

        

       /*读取prefix前缀*/

        NSString *prefix = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonPrefixProperty);

        

       /*读取suffix后缀*/

        

        NSString *suffix = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonSuffixProperty);

        

       /*读取nickname*/

        NSString *nickname = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonNicknameProperty);

        

       /*读取firstname拼音*/

        NSString *firstnamePhonetic = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonFirstNamePhoneticProperty);

        

       /*读取lastname拼音音标*/

        NSString *lastnamePhonetic = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonLastNamePhoneticProperty);

        

       /*读取middlename拼音音标*/

        NSString *middlenamePhonetic = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonMiddleNameProperty);

        

       /*读取organization公司*/

        NSString *organization = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonOrganizationProperty);

        

       /*读取jobtitle工作*/

         NSString *jobtitle = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonJobTitleProperty);

        

       /*读取department部门*/

        NSString *department = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonDepartmentProperty);

        

       /*读取备忘录note*/

        NSString *note = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonNoteProperty);

        

       /*读取birthday生日*/

        NSDate *birthday = (NSDate*)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonBirthdayProperty);

        

       /*第一次添加该条记录得时间*/

//        NSString *firstKnow = (NSString *)ABRecordCopyValue([arrTemp objectAtIndex:i], kABPersonCreationDateProperty);

       /*最后一次修改该条记录得时间*/

//         NSString *lastKnow = (NSString *)ABRecordCopyValue([arrTemp objectAtIndex:i], kABPersonModificationDateProperty);

        

        

       //获取email多值

//        ABMultiValueRef email = ABRecordCopyValue([arrTemp objectAtIndex:i], kABPersonEmailProperty);

//        for (int x=0; x<ABMultiValueGetCount(email); x++) {

//            //获取email label

//            NSString *emailLabel  = (NSString *)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(email, x));

//            NSLog(@"emailLabel=%@",emailLabel);

//            

//            //获取email

//            NSString *emailContent  = (NSString *)ABMultiValueCopyValueAtIndex(email, x);

//        }

        

        //读取电话多值

       ABMultiValueRef phone =ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonPhoneProperty);

        //临时Dictionary用来存放电话多值

       NSMutableDictionary *dicPhone=[[NSMutableDictionaryalloc]init];

        for (int k =0; k<ABMultiValueGetCount(phone); k++)

        {

             

            //获取电话Label如:mobile,iPhone,etc

           NSString * personPhoneLabel = (NSString*)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(phone, k));

            NSLog(@"personPhoneLabel=%@",personPhoneLabel);

           //获取該Label下的电话值

            NSString * personPhone = (NSString*)ABMultiValueCopyValueAtIndex(phone, k);

            NSLog(@"personPhone=%@",personPhone);            

           *** [dicPhonesetObject:personPhoneforKey:personPhoneLabel];***important

        }

        @try 

        {

            if (firstName !=nil) {

                [dicContactsetObject:firstNameforKey:@"firstname"];

            }

            if(lastName !=nil){

                [dicContactsetObject:lastNameforKey:@"lastname"];

            }

            if(middleName !=nil){

                [dicContactsetObject:middleNameforKey:@"middleName"];

            }

            if(prefix !=nil){

                [dicContactsetObject:prefixforKey:@"prefix"];

            }

            if(suffix !=nil){

                [dicContactsetObject:suffixforKey:@"suffix"];

            }

            if(nickname !=nil){

                [dicContactsetObject:nicknameforKey:@"nickName"];

            }

            if(firstnamePhonetic !=nil){

                [dicContactsetObject:firstnamePhoneticforKey:@"firstnamePhonetic"];

            }

            if(lastnamePhonetic !=nil){

                [dicContactsetObject:lastnamePhoneticforKey:@"lastnamePhonetic"];

            }

            if(middlenamePhonetic !=nil){

                [dicContactsetObject:middlenamePhoneticforKey:@"middlenamePhonetic"];

            }

            if(organization !=nil){

                [dicContactsetObject:organizationforKey:@"organization"];

            }

            if(jobtitle !=nil){

                [dicContactsetObject:jobtitleforKey:@"jobtitle"];

            }

            if(department !=nil){

                [dicContactsetObject:departmentforKey:@"department"];

            }

            if(note!=nil){

                [dicContactsetObject:noteforKey:@"note"];

            }

            if (birthday !=nil) {

                [dicContactsetObject:birthdayforKey:@"birthday"];

            }

            //add多值字段

            if (dicPhone !=nil) {

                [dicContactsetObject:dicPhoneforKey:@"phone"];--添加多值Dictionary到总的Dictionary

            }

            

            

           //[dicContact setObject:dicPhone forKey:@"phone"];

//            [dicContact setObject:firstKnow forKey:@"firstKnow"];

//            [dicContact setObject:lastKnow forKey:@"lastKnow"];

            

        }

        @catch (NSException * e) {

            [dicContactrelease];

            continue;

        }

        

        [arrContact addObject:dicContact];

       //[arrContact addObject:dicPhone];

       //nsuinteger ==> nsstring

        NSString *localcount = [NSStringstringWithFormat:@"%d",[arrContactcount]];

        NSLog(@"localcount=%@",localcount);

        self.localCounts.text = localcount;

       //写入数据到目录下面:

        [dicContact release];

        [dicPhone release];  

    }

    

    [selfwriteToFile:arrContact];

    [selfgo];

   //[self readFromPath];

}


原创粉丝点击