zoukankan      html  css  js  c++  java
  • iOS 通讯录操作

    转载至: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);
    }

  • 相关阅读:
    【译】在 Chrome 开发者工具中调试 node.js
    2015 年 JavaScript 开发者调查报告
    [译]PostCSS介绍
    [译] Angular 2 VS. React: 血色将至
    使用Fidder将生成环境代码映射到本地(文件夹)
    Sublime Text 3 搭建 React.js 开发环境
    用HTML5+JS开发跨平台的桌面应用
    npm WARN unmet dependency错误解决方法
    【数据结构与算法】线性表操作(C语言)
    【数据结构学习笔记】数组
  • 原文地址:https://www.cnblogs.com/changjiang/p/3478173.html
Copyright © 2011-2022 走看看