您的位置:首页 > 移动开发 > IOS开发

iOS获取本地通信录、添加联系人信息

2013-12-09 15:23 323 查看
转载至:http://superuna.blog.51cto.com/4192682/982938

//新增联系人

-(void)AddPeople

{

        //取得本地通信录名柄

    ABAddressBookRef tmpAddressBook = ABAddressBookCreate();

        //创建一条联系人记录

        ABRecordRef tmpRecord = ABPersonCreate();

    CFErrorRef error;

    BOOL tmpSuccess = NO;

        //Nickname

        CFStringRef tmpNickname = CFSTR("Sparky");

    tmpSuccess = ABRecordSetValue(tmpRecord, kABPersonNicknameProperty, tmpNickname, &error);

        CFRelease(tmpNickname);

        //First name

        CFStringRef tmpFirstName = CFSTR("zhang");

    tmpSuccess = ABRecordSetValue(tmpRecord, kABPersonFirstNameProperty, tmpFirstName, &error);

        CFRelease(tmpFirstName);

        //Last name

        CFStringRef tmpLastName = CFSTR("shan");

    tmpSuccess = ABRecordSetValue(tmpRecord, kABPersonLastNameProperty, tmpLastName, &error);

        CFRelease(tmpLastName);

        //phone number

        CFTypeRef tmpPhones = CFSTR("13902400000");

    ABMutableMultiValueRef tmpMutableMultiPhones = ABMultiValueCreateMutable(kABPersonPhoneProperty);

    ABMultiValueAddValueAndLabel(tmpMutableMultiPhones, tmpPhones, kABPersonPhoneMobileLabel, NULL);

    tmpSuccess = ABRecordSetValue(tmpRecord, kABPersonPhoneProperty, tmpMutableMultiPhones, &error);

        CFRelease(tmpPhones);

    //保存记录

    tmpSuccess = ABAddressBookAddRecord(tmpAddressBook, tmpRecord, &error);

        CFRelease(tmpRecord);

        //保存数据库

    tmpSuccess = ABAddressBookSave(tmpAddressBook, &error);

        CFRelease(tmpAddressBook);

}

//删除联系人

-(void)DeletePeople

{

        //取得本地通信录名柄

        ABAddressBookRef tmpAddressBook = ABAddressBookCreate();

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

        for(id tmpPerson in tmpPersonArray)

        {

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

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

                NSString* tmpFullName = [NSString stringWithFormat: @"%@%@", [tmpFirstName lowercaseString], [tmpLastName lowercaseString]];

                [tmpFirstName release];

                [tmpLastName release];

                //删除联系人

                if([tmpFullName isEqualToString:@"zhangshan"])

                {

                        ABAddressBookRemoveRecord(tmpAddressBook, tmpPerson, nil);

                }

        }

        //保存电话本

        ABAddressBookSave(tmpAddressBook, nil);

        //释放内存

        [tmpPersonArray release];

        CFRelease(tmpAddressBook);

}

//读取所有联系人

-(void)ReadAllPeoples

{       

        //取得本地通信录名柄

        ABAddressBookRef tmpAddressBook = ABAddressBookCreate();

        //取得本地所有联系人记录

        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);

}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios