zoukankan      html  css  js  c++  java
  • 实现通讯录的查询与删除

    os提供了对通讯录操作的组建,其中一个是直接操作通讯录,另一个是调用通讯录的UI组建。实现方法如下:

    添加AddressBook.framework到工程中。

    image

    代码实现:

        -(IBAction)onClickbutton:(id)sender
        {
            NSMutableArray* personArray =[[[NSMutableArray alloc] init] autorelease];
            ABAddressBookRef addressBook =ABAddressBookCreate();
            NSString*firstName,*lastName,*fullName;
            personArray =(NSMutableArray*)ABAddressBookCopyArrayOfAllPeople(addressBook);
            if([sender tag]==0){
    
                for(id *person in personArray)
                {
                    firstName =(NSString*)ABRecordCopyValue(person, kABPersonFirstNameProperty);
                    firstName =[firstName stringByAppendingFormat:@" "];
                    lastName =(NSString*)ABRecordCopyValue(person, kABPersonLastNameProperty);   
                    fullName =[firstName stringByAppendingFormat:@"%@",lastName];
                    NSLog(@"===%@",fullName);
                    ABMultiValueRef phones =(ABMultiValueRef)ABRecordCopyValue(person, kABPersonPhoneProperty);
                    for(int i =0;i <ABMultiValueGetCount(phones); i++)
                    { 
                        NSString*phone =(NSString*)ABMultiValueCopyValueAtIndex(phones, i);
                        NSLog(@"===%@",phone);
                    }
                    ABMultiValueRef mails =(ABMultiValueRef)ABRecordCopyValue(person, kABPersonEmailProperty);
                    for(int i =0;i <ABMultiValueGetCount(mails); i++)
                    { 
                        NSString*mail =(NSString*)ABMultiValueCopyValueAtIndex(mails, i);
                        NSLog(@"==%@",mail);
                    }       
                }   
            }else{
                //删除信息
                //返回所有联系人到一个数组中
                CFArrayRef personArray =ABAddressBookCopyArrayOfAllPeople(addressBook);
                CFIndex personCount =ABAddressBookGetPersonCount(addressBook);
                  for(int i =0;i<personCount;i++){
                      ABRecordRefref=CFArrayGetValueAtIndex(personArray, i);
                      CFStringRef firstName1 =ABRecordCopyValue(ref, kABPersonFirstNameProperty);
                      CFStringRef lastName1 =ABRecordCopyValue(ref, kABPersonLastNameProperty);
                      NSString*contactFirstLast =[NSString stringWithFormat: @"%@%@",(NSString*)firstName1,(NSString*)lastName1];
                    if([contactFirstLast isEqualToString:@"徐梦"]){
                        //删除联系人
                        ABAddressBookRemoveRecord(addressBook,ref,nil);
                    }
                }
                //保存电话本
                ABAddressBookSave(addressBook,nil);  
                //释放内存
                //CFRelease(personRef);
        //        CFRelease(addressbookRef); 
            }
        }
  • 相关阅读:
    Threading in C# Learining
    win7 设置IIS
    Aforge视频采集
    C# 删除文件夹下的所有文件
    C# Timer实现实时监听
    Java中堆内存和栈内存详解
    彻底掌握 AQS
    四种线程同步/互斥方式小结
    CyclicBarrier可重用的循环栅栏
    答疑解惑之ExecutorService——shutdown方法和awaitTermination方法使用
  • 原文地址:https://www.cnblogs.com/q403154749/p/3928114.html
Copyright © 2011-2022 走看看