zoukankan      html  css  js  c++  java
  • iOS 获取通讯录中联系人的所有属性 by

      1 ABAddressBookRef addressBook = ABAddressBookCreate();
      2 
      3     CFArrayRef results = ABAddressBookCopyArrayOfAllPeople(addressBook);
      4     
      5     for(int i = 0; i < CFArrayGetCount(results); i++)
      6     {
      7         ABRecordRef person = CFArrayGetValueAtIndex(results, i);
      8         //读取firstname
      9         NSString *personName = (NSString*)ABRecordCopyValue(person, kABPersonFirstNameProperty);
     10         if(personName != nil)
     11             textView.text = [textView.text stringByAppendingFormat:@"
    姓名:%@
    ",personName];
     12         //读取lastname
     13         NSString *lastname = (NSString*)ABRecordCopyValue(person, kABPersonLastNameProperty);
     14         if(lastname != nil)
     15             textView.text = [textView.text stringByAppendingFormat:@"%@
    ",lastname];
     16         //读取middlename
     17         NSString *middlename = (NSString*)ABRecordCopyValue(person, kABPersonMiddleNameProperty);
     18         if(middlename != nil)
     19             textView.text = [textView.text stringByAppendingFormat:@"%@
    ",middlename];
     20         //读取prefix前缀
     21         NSString *prefix = (NSString*)ABRecordCopyValue(person, kABPersonPrefixProperty);
     22         if(prefix != nil)
     23             textView.text = [textView.text stringByAppendingFormat:@"%@
    ",prefix];
     24         //读取suffix后缀
     25         NSString *suffix = (NSString*)ABRecordCopyValue(person, kABPersonSuffixProperty);
     26         if(suffix != nil)
     27             textView.text = [textView.text stringByAppendingFormat:@"%@
    ",suffix];
     28         //读取nickname呢称
     29         NSString *nickname = (NSString*)ABRecordCopyValue(person, kABPersonNicknameProperty);
     30         if(nickname != nil)
     31             textView.text = [textView.text stringByAppendingFormat:@"%@
    ",nickname];
     32         //读取firstname拼音音标
     33         NSString *firstnamePhonetic = (NSString*)ABRecordCopyValue(person, kABPersonFirstNamePhoneticProperty);
     34         if(firstnamePhonetic != nil)
     35             textView.text = [textView.text stringByAppendingFormat:@"%@
    ",firstnamePhonetic];
     36         //读取lastname拼音音标
     37         NSString *lastnamePhonetic = (NSString*)ABRecordCopyValue(person, kABPersonLastNamePhoneticProperty);
     38         if(lastnamePhonetic != nil)
     39             textView.text = [textView.text stringByAppendingFormat:@"%@
    ",lastnamePhonetic];
     40         //读取middlename拼音音标
     41         NSString *middlenamePhonetic = (NSString*)ABRecordCopyValue(person, kABPersonMiddleNamePhoneticProperty);
     42         if(middlenamePhonetic != nil)
     43             textView.text = [textView.text stringByAppendingFormat:@"%@
    ",middlenamePhonetic];
     44         //读取organization公司
     45         NSString *organization = (NSString*)ABRecordCopyValue(person, kABPersonOrganizationProperty);
     46         if(organization != nil)
     47             textView.text = [textView.text stringByAppendingFormat:@"%@
    ",organization];
     48         //读取jobtitle工作
     49         NSString *jobtitle = (NSString*)ABRecordCopyValue(person, kABPersonJobTitleProperty);
     50         if(jobtitle != nil)
     51             textView.text = [textView.text stringByAppendingFormat:@"%@
    ",jobtitle];
     52         //读取department部门
     53         NSString *department = (NSString*)ABRecordCopyValue(person, kABPersonDepartmentProperty);
     54         if(department != nil)
     55             textView.text = [textView.text stringByAppendingFormat:@"%@
    ",department];
     56         //读取birthday生日
     57         NSDate *birthday = (NSDate*)ABRecordCopyValue(person, kABPersonBirthdayProperty);
     58         if(birthday != nil)
     59             textView.text = [textView.text stringByAppendingFormat:@"%@
    ",birthday];
     60         //读取note备忘录
     61         NSString *note = (NSString*)ABRecordCopyValue(person, kABPersonNoteProperty);
     62         if(note != nil)
     63             textView.text = [textView.text stringByAppendingFormat:@"%@
    ",note];
     64         //第一次添加该条记录的时间
     65         NSString *firstknow = (NSString*)ABRecordCopyValue(person, kABPersonCreationDateProperty);
     66         NSLog(@"第一次添加该条记录的时间%@
    ",firstknow);
     67         //最后一次修改該条记录的时间
     68         NSString *lastknow = (NSString*)ABRecordCopyValue(person, kABPersonModificationDateProperty);
     69         NSLog(@"最后一次修改該条记录的时间%@
    ",lastknow);
     70         
     71         //获取email多值
     72         ABMultiValueRef email = ABRecordCopyValue(person, kABPersonEmailProperty);
     73         int emailcount = ABMultiValueGetCount(email);    
     74         for (int x = 0; x < emailcount; x++)
     75         {
     76             //获取email Label
     77             NSString* emailLabel = (NSString*)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(email, x));
     78             //获取email值
     79             NSString* emailContent = (NSString*)ABMultiValueCopyValueAtIndex(email, x);
     80             textView.text = [textView.text stringByAppendingFormat:@"%@:%@
    ",emailLabel,emailContent];
     81         }
     82         //读取地址多值
     83         ABMultiValueRef address = ABRecordCopyValue(person, kABPersonAddressProperty);
     84         int count = ABMultiValueGetCount(address);    
     85         
     86         for(int j = 0; j < count; j++)
     87         {
     88             //获取地址Label
     89             NSString* addressLabel = (NSString*)ABMultiValueCopyLabelAtIndex(address, j);
     90             textView.text = [textView.text stringByAppendingFormat:@"%@
    ",addressLabel];
     91             //获取該label下的地址6属性
     92             NSDictionary* personaddress =(NSDictionary*) ABMultiValueCopyValueAtIndex(address, j);        
     93             NSString* country = [personaddress valueForKey:(NSString *)kABPersonAddressCountryKey];
     94             if(country != nil)
     95                 textView.text = [textView.text stringByAppendingFormat:@"国家:%@
    ",country];
     96             NSString* city = [personaddress valueForKey:(NSString *)kABPersonAddressCityKey];
     97             if(city != nil)
     98                 textView.text = [textView.text stringByAppendingFormat:@"城市:%@
    ",city];
     99             NSString* state = [personaddress valueForKey:(NSString *)kABPersonAddressStateKey];
    100             if(state != nil)
    101                 textView.text = [textView.text stringByAppendingFormat:@"省:%@
    ",state];
    102             NSString* street = [personaddress valueForKey:(NSString *)kABPersonAddressStreetKey];
    103             if(street != nil)
    104                 textView.text = [textView.text stringByAppendingFormat:@"街道:%@
    ",street];
    105             NSString* zip = [personaddress valueForKey:(NSString *)kABPersonAddressZIPKey];
    106             if(zip != nil)
    107                 textView.text = [textView.text stringByAppendingFormat:@"邮编:%@
    ",zip];    
    108             NSString* coutntrycode = [personaddress valueForKey:(NSString *)kABPersonAddressCountryCodeKey];
    109             if(coutntrycode != nil)
    110                 textView.text = [textView.text stringByAppendingFormat:@"国家编号:%@
    ",coutntrycode];    
    111         }
    112         
    113         //获取dates多值
    114         ABMultiValueRef dates = ABRecordCopyValue(person, kABPersonDateProperty);
    115         int datescount = ABMultiValueGetCount(dates);    
    116         for (int y = 0; y < datescount; y++)
    117         {
    118             //获取dates Label
    119             NSString* datesLabel = (NSString*)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(dates, y));
    120             //获取dates值
    121             NSString* datesContent = (NSString*)ABMultiValueCopyValueAtIndex(dates, y);
    122             textView.text = [textView.text stringByAppendingFormat:@"%@:%@
    ",datesLabel,datesContent];
    123         }
    124         //获取kind值
    125         CFNumberRef recordType = ABRecordCopyValue(person, kABPersonKindProperty);
    126         if (recordType == kABPersonKindOrganization) {
    127             // it's a company
    128             NSLog(@"it's a company
    ");
    129         } else {
    130             // it's a person, resource, or room
    131             NSLog(@"it's a person, resource, or room
    ");
    132         }
    133         
    134         
    135         //获取IM多值
    136         ABMultiValueRef instantMessage = ABRecordCopyValue(person, kABPersonInstantMessageProperty);
    137         for (int l = 1; l < ABMultiValueGetCount(instantMessage); l++)
    138         {
    139             //获取IM Label
    140             NSString* instantMessageLabel = (NSString*)ABMultiValueCopyLabelAtIndex(instantMessage, l);
    141             textView.text = [textView.text stringByAppendingFormat:@"%@
    ",instantMessageLabel];
    142             //获取該label下的2属性
    143             NSDictionary* instantMessageContent =(NSDictionary*) ABMultiValueCopyValueAtIndex(instantMessage, l);        
    144             NSString* username = [instantMessageContent valueForKey:(NSString *)kABPersonInstantMessageUsernameKey];
    145             if(username != nil)
    146                 textView.text = [textView.text stringByAppendingFormat:@"username:%@
    ",username];
    147             
    148             NSString* service = [instantMessageContent valueForKey:(NSString *)kABPersonInstantMessageServiceKey];
    149             if(service != nil)
    150                 textView.text = [textView.text stringByAppendingFormat:@"service:%@
    ",service];            
    151         }
    152         
    153         //读取电话多值
    154         ABMultiValueRef phone = ABRecordCopyValue(person, kABPersonPhoneProperty);
    155         for (int k = 0; k<ABMultiValueGetCount(phone); k++)
    156         {
    157             //获取电话Label
    158             NSString * personPhoneLabel = (NSString*)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(phone, k));
    159             //获取該Label下的电话值
    160             NSString * personPhone = (NSString*)ABMultiValueCopyValueAtIndex(phone, k);
    161                 
    162             textView.text = [textView.text stringByAppendingFormat:@"%@:%@
    ",personPhoneLabel,personPhone];
    163         }
    164         
    165         //获取URL多值
    166         ABMultiValueRef url = ABRecordCopyValue(person, kABPersonURLProperty);
    167         for (int m = 0; m < ABMultiValueGetCount(url); m++)
    168         {
    169             //获取电话Label
    170             NSString * urlLabel = (NSString*)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(url, m));
    171             //获取該Label下的电话值
    172             NSString * urlContent = (NSString*)ABMultiValueCopyValueAtIndex(url,m);
    173             
    174             textView.text = [textView.text stringByAppendingFormat:@"%@:%@
    ",urlLabel,urlContent];
    175         }
    176         
    177         //读取照片
    178         NSData *image = (NSData*)ABPersonCopyImageData(person);
    179             
    180 
    181         UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(200, 0, 50, 50)];
    182         [myImage setImage:[UIImage imageWithData:image]];
    183         myImage.opaque = YES;
    184         [textView addSubview:myImage];
    185         
    186 
    187     
    188     }
    189     
    190     CFRelease(results);
    191     CFRelease(addressBook); 
    192 
    193 复制代码
  • 相关阅读:
    python requests 上传excel数据流
    No module named 'requests_toolbelt'
    code
    pytest 打印调试信息
    python3 获取日期时间
    Java单元测试之JUnit篇
    The import junit cannot be resolved解决问题
    什么是索引
    python3 ini文件读写
    js 测试题
  • 原文地址:https://www.cnblogs.com/sixindev/p/4590493.html
Copyright © 2011-2022 走看看