zoukankan      html  css  js  c++  java
  • ios 开发,通讯录信息调用常用方法,这个比较全,不用再整理了

    ABAddressBookRef addressBook = ABAddressBookCreate();
    
        CFArrayRef results = ABAddressBookCopyArrayOfAllPeople(addressBook);
        
        for(int i = 0; i < CFArrayGetCount(results); i++)
        {
            ABRecordRef person = CFArrayGetValueAtIndex(results, i);
            //读取firstname
            NSString *personName = (NSString*)ABRecordCopyValue(person, kABPersonFirstNameProperty);
            if(personName != nil)
                textView.text = [textView.text stringByAppendingFormat:@"
    姓名:%@
    ",personName];
            //读取lastname
            NSString *lastname = (NSString*)ABRecordCopyValue(person, kABPersonLastNameProperty);
            if(lastname != nil)
                textView.text = [textView.text stringByAppendingFormat:@"%@
    ",lastname];
            //读取middlename
            NSString *middlename = (NSString*)ABRecordCopyValue(person, kABPersonMiddleNameProperty);
            if(middlename != nil)
                textView.text = [textView.text stringByAppendingFormat:@"%@
    ",middlename];
            //读取prefix前缀
            NSString *prefix = (NSString*)ABRecordCopyValue(person, kABPersonPrefixProperty);
            if(prefix != nil)
                textView.text = [textView.text stringByAppendingFormat:@"%@
    ",prefix];
            //读取suffix后缀
            NSString *suffix = (NSString*)ABRecordCopyValue(person, kABPers*****uffixProperty);
            if(suffix != nil)
                textView.text = [textView.text stringByAppendingFormat:@"%@
    ",suffix];
            //读取nickname呢称
            NSString *nickname = (NSString*)ABRecordCopyValue(person, kABPersonNicknameProperty);
            if(nickname != nil)
                textView.text = [textView.text stringByAppendingFormat:@"%@
    ",nickname];
            //读取firstname拼音音标
            NSString *firstnamePhonetic = (NSString*)ABRecordCopyValue(person, kABPersonFirstNamePhoneticProperty);
            if(firstnamePhonetic != nil)
                textView.text = [textView.text stringByAppendingFormat:@"%@
    ",firstnamePhonetic];
            //读取lastname拼音音标
            NSString *lastnamePhonetic = (NSString*)ABRecordCopyValue(person, kABPersonLastNamePhoneticProperty);
            if(lastnamePhonetic != nil)
                textView.text = [textView.text stringByAppendingFormat:@"%@
    ",lastnamePhonetic];
            //读取middlename拼音音标
            NSString *middlenamePhonetic = (NSString*)ABRecordCopyValue(person, kABPersonMiddleNamePhoneticProperty);
            if(middlenamePhonetic != nil)
                textView.text = [textView.text stringByAppendingFormat:@"%@
    ",middlenamePhonetic];
            //读取organization公司
            NSString *organization = (NSString*)ABRecordCopyValue(person, kABPersonOrganizationProperty);
            if(organization != nil)
                textView.text = [textView.text stringByAppendingFormat:@"%@
    ",organization];
            //读取jobtitle工作
            NSString *jobtitle = (NSString*)ABRecordCopyValue(person, kABPersonJobTitleProperty);
            if(jobtitle != nil)
                textView.text = [textView.text stringByAppendingFormat:@"%@
    ",jobtitle];
            //读取department部门
            NSString *department = (NSString*)ABRecordCopyValue(person, kABPersonDepartmentProperty);
            if(department != nil)
                textView.text = [textView.text stringByAppendingFormat:@"%@
    ",department];
            //读取birthday生日
            NSDate *birthday = (NSDate*)ABRecordCopyValue(person, kABPersonBirthdayProperty);
            if(birthday != nil)
                textView.text = [textView.text stringByAppendingFormat:@"%@
    ",birthday];
            //读取note备忘录
            NSString *note = (NSString*)ABRecordCopyValue(person, kABPersonNoteProperty);
            if(note != nil)
                textView.text = [textView.text stringByAppendingFormat:@"%@
    ",note];
            //第一次添加该条记录的时间
            NSString *firstknow = (NSString*)ABRecordCopyValue(person, kABPersonCreationDateProperty);
            NSLog(@"第一次添加该条记录的时间%@
    ",firstknow);
            //最后一次修改該条记录的时间
            NSString *lastknow = (NSString*)ABRecordCopyValue(person, kABPersonModificationDateProperty);
            NSLog(@"最后一次修改該条记录的时间%@
    ",lastknow);
            
            //获取email多值
            ABMultiValueRef email = ABRecordCopyValue(person, kABPersonEmailProperty);
            int emailcount = ABMultiValueGetCount(email);    
            for (int x = 0; x < emailcount; x++)
            {
                //获取email Label
                NSString* emailLabel = (NSString*)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(email, x));
                //获取email值
                NSString* emailContent = (NSString*)ABMultiValueCopyValueAtIndex(email, x);
                textView.text = [textView.text stringByAppendingFormat:@"%@:%@
    ",emailLabel,emailContent];
            }
            //读取地址多值
            ABMultiValueRef address = ABRecordCopyValue(person, kABPersonAddressProperty);
            int count = ABMultiValueGetCount(address);    
            
            for(int j = 0; j < count; j++)
            {
                //获取地址Label
                NSString* addressLabel = (NSString*)ABMultiValueCopyLabelAtIndex(address, j);
                textView.text = [textView.text stringByAppendingFormat:@"%@
    ",addressLabel];
                //获取該label下的地址6属性
                NSDictionary* personaddress =(NSDictionary*) ABMultiValueCopyValueAtIndex(address, j);        
                NSString* country = [personaddress valueForKey:(NSString *)kABPersonAddressCountryKey];
                if(country != nil)
                    textView.text = [textView.text stringByAppendingFormat:@"国家:%@
    ",country];
                NSString* city = [personaddress valueForKey:(NSString *)kABPersonAddressCityKey];
                if(city != nil)
                    textView.text = [textView.text stringByAppendingFormat:@"城市:%@
    ",city];
                NSString* state = [personaddress valueForKey:(NSString *)kABPersonAddressStateKey];
                if(state != nil)
                    textView.text = [textView.text stringByAppendingFormat:@"省:%@
    ",state];
                NSString* street = [personaddress valueForKey:(NSString *)kABPersonAddressStreetKey];
                if(street != nil)
                    textView.text = [textView.text stringByAppendingFormat:@"街道:%@
    ",street];
                NSString* zip = [personaddress valueForKey:(NSString *)kABPersonAddressZIPKey];
                if(zip != nil)
                    textView.text = [textView.text stringByAppendingFormat:@"邮编:%@
    ",zip];    
                NSString* coutntrycode = [personaddress valueForKey:(NSString *)kABPersonAddressCountryCodeKey];
                if(coutntrycode != nil)
                    textView.text = [textView.text stringByAppendingFormat:@"国家编号:%@
    ",coutntrycode];    
            }
            
            //获取dates多值
            ABMultiValueRef dates = ABRecordCopyValue(person, kABPersonDateProperty);
            int datescount = ABMultiValueGetCount(dates);    
            for (int y = 0; y < datescount; y++)
            {
                //获取dates Label
                NSString* datesLabel = (NSString*)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(dates, y));
                //获取dates值
                NSString* datesContent = (NSString*)ABMultiValueCopyValueAtIndex(dates, y);
                textView.text = [textView.text stringByAppendingFormat:@"%@:%@
    ",datesLabel,datesContent];
            }
            //获取kind值
            CFNumberRef recordType = ABRecordCopyValue(person, kABPersonKindProperty);
            if (recordType == kABPersonKindOrganization) {
                // it's a company
                NSLog(@"it's a company
    ");
            } else {
                // it's a person, resource, or room
                NSLog(@"it's a person, resource, or room
    ");
            }
            
            
            //获取IM多值
            ABMultiValueRef instantMessage = ABRecordCopyValue(person, kABPersonInstantMessageProperty);
            for (int l = 1; l < ABMultiValueGetCount(instantMessage); l++)
            {
                //获取IM Label
                NSString* instantMessageLabel = (NSString*)ABMultiValueCopyLabelAtIndex(instantMessage, l);
                textView.text = [textView.text stringByAppendingFormat:@"%@
    ",instantMessageLabel];
                //获取該label下的2属性
                NSDictionary* instantMessageContent =(NSDictionary*) ABMultiValueCopyValueAtIndex(instantMessage, l);        
                NSString* username = [instantMessageContent valueForKey:(NSString *)kABPersonInstantMessageUsernameKey];
                if(username != nil)
                    textView.text = [textView.text stringByAppendingFormat:@"username:%@
    ",username];
                
                NSString* service = [instantMessageContent valueForKey:(NSString *)kABPersonInstantMessageServiceKey];
                if(service != nil)
                    textView.text = [textView.text stringByAppendingFormat:@"service:%@
    ",service];            
            }
            
            //读取电话多值
            ABMultiValueRef phone = ABRecordCopyValue(person, kABPersonPhoneProperty);
            for (int k = 0; k<ABMultiValueGetCount(phone); k++)
            {
                //获取电话Label
                NSString * personPhoneLabel = (NSString*)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(phone, k));
                //获取該Label下的电话值
                NSString * personPhone = (NSString*)ABMultiValueCopyValueAtIndex(phone, k);
                    
                textView.text = [textView.text stringByAppendingFormat:@"%@:%@
    ",personPhoneLabel,personPhone];
            }
            
            //获取URL多值
            ABMultiValueRef url = ABRecordCopyValue(person, kABPersonURLProperty);
            for (int m = 0; m < ABMultiValueGetCount(url); m++)
            {
                //获取电话Label
                NSString * urlLabel = (NSString*)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(url, m));
                //获取該Label下的电话值
                NSString * urlContent = (NSString*)ABMultiValueCopyValueAtIndex(url,m);
                
                textView.text = [textView.text stringByAppendingFormat:@"%@:%@
    ",urlLabel,urlContent];
            }
            
            //读取照片
            NSData *image = (NSData*)ABPersonCopyImageData(person);
                
    
            UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(200, 0, 50, 50)];
            [myImage setImage:[UIImage imageWithData:image]];
            myImage.opaque = YES;
            [textView addSubview:myImage];
            
    
        
        }
        
        CFRelease(results);
        CFRelease(addressBook);
    
  • 相关阅读:
    LightOJ 1344 Aladdin and the Game of Bracelets
    CF 1132A,1132B,1132C,1132D,1132E,1132F(Round 61 A,B,C,D,E,F)题解
    CF 1130A 1130B 1130C1129A1 1129A2 1129B(Round542A B C D1 D2 E)题解
    CF 1131A,1131B,1131C,1131D,1131F(Round541 A,B,C,D,F)题解
    CoderForces-Round60D(1117) Magic Gems
    CoderForces Round60-(1117A,1117B,1117C题解)
    LightOJ 1038 Race To 1 Again(概率DP)
    XHXJ'S LIS(数位DP)
    CF 55D Beautiful Numbers(数位DP)
    LightOJ 1229 Tablecross
  • 原文地址:https://www.cnblogs.com/heyonggang/p/3472867.html
Copyright © 2011-2022 走看看