獲取通訊錄內(nèi)容-創(chuàng)新互聯(lián)

先導(dǎo)入AddressBook.framework和

我們注重客戶提出的每個(gè)要求,我們充分考慮每一個(gè)細(xì)節(jié),我們積極的做好成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)服務(wù),我們努力開(kāi)拓更好的視野,通過(guò)不懈的努力,成都創(chuàng)新互聯(lián)公司贏得了業(yè)內(nèi)的良好聲譽(yù),這一切,也不斷的激勵(lì)著我們更好的服務(wù)客戶。 主要業(yè)務(wù):網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),小程序開(kāi)發(fā),網(wǎng)站開(kāi)發(fā),技術(shù)開(kāi)發(fā)實(shí)力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫(kù)的技術(shù)開(kāi)發(fā)工程師。

AddressBookUI.framework兩個(gè)框架

添加地址簿框架后,我們還需要在工程中添加相應(yīng)的頭文件:

#import <AddressBook/AddressBook.h>

#import <AddressBookUI/AddressBookUI.h>

1.AddressBookUI顯示部分

AddressBookUI中提供了和聯(lián)系人顯示信息相關(guān)的一些Controller,有四個(gè):

ABPeoplePickerNavigationController:顯示整個(gè)通訊錄并可以選擇一個(gè)聯(lián)系人的信息

ABPersonViewController:顯示一個(gè)具體聯(lián)系人的信息

ABNewPersonViewController:增加一個(gè)新的聯(lián)系人

ABUnknownPersonViewController:完善一個(gè)聯(lián)系人的信息

由于其中最主要的是ABPeoplePickerNavigationController,因此就具體的介紹一下通過(guò)程序顯示整個(gè)通訊錄并且可以選擇其中某個(gè)聯(lián)系人信息的步驟。

(a)創(chuàng)建并初始化一個(gè)ABPeoplePickerNavigationController對(duì)象

(b)設(shè)置其代理(delegate)

(c)用presentModalViewController:animated:這個(gè)方法進(jìn)行顯示整個(gè)通訊錄頁(yè)面

例子:

   - (IBAction)showPicker:(id)sender {

   ABPeoplePickerNavigationController *picker =

   [[ABPeoplePickerNavigationController alloc] init];

 picker.peoplePickerDelegate = self;

   [self presentModalViewController:picker animated:YES];

  [picker release];

}

ABPeoplePickerNavigationControllerDelegate的方法介紹

當(dāng)用戶選擇取消時(shí)調(diào)用這個(gè)方法,可以在這個(gè)方法里取消整個(gè)通訊錄頁(yè)面的顯示。

(1)peoplePickerNavigationControllerDidCancel:

例子 :

- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker {

    [peoplePicker dismissViewControllerAnimated:YES completion:nil];

}

(2)選擇具體聯(lián)系人的時(shí)候,拿到該聯(lián)系人的具體信息

-(void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person {

    //獲取聯(lián)系人姓名

    NSString *name = (__bridge NSString*)ABRecordCopyCompositeName(person);

    NSLog(@"name = %@",name);

    //獲取聯(lián)系人電話

    ABMutableMultiValueRef phoneMulti = ABRecordCopyValue(person, kABPersonPhoneProperty);

  

    NSMutableArray *phones = [[NSMutableArray alloc] init];

    int i;

    for (i = 0; i < ABMultiValueGetCount(phoneMulti); i++) {

        NSString *aPhone = (__bridge NSString*)ABMultiValueCopyValueAtIndex(phoneMulti, i);

        NSString *aLabel = (__bridge NSString*)ABMultiValueCopyLabelAtIndex(phoneMulti, i);

        NSLog(@"PhoneLabel:%@ Phone#:%@",aLabel,aPhone);

        if([aLabel isEqualToString:@"_$!<Mobile>!$_"])

        {

            [phones addObject:aPhone];

        }

    }

    NSString *phone;

    if([phones count]>0)

    {

        NSString *mobileNo = [phones objectAtIndex:0];

        phone = mobileNo;

        NSLog(@"phone = %@", phone);

        //NSLog(mobileNo);

    }

    //獲取聯(lián)系人郵箱

    ABMutableMultiValueRef emailMulti = ABRecordCopyValue(person, kABPersonEmailProperty);

    NSMutableArray *emails = [[NSMutableArray alloc] init];

    for (i = 0;i < ABMultiValueGetCount(emailMulti); i++)

    {

        NSString *emailAdress = (__bridge NSString*)ABMultiValueCopyValueAtIndex(emailMulti, i);

        [emails addObject:emailAdress];

    }

    NSString *email;

    if([emails count]>0)

    {

        NSString *emailFirst=[emails objectAtIndex:0];

        email = emailFirst;

        NSLog(@"email = %@",email);

    }

    [peoplePicker dismissViewControllerAnimated:YES completion:nil];

  

}

2.AddressBook部分

AddressBook框架部分主要是記錄聯(lián)系人的各個(gè)信息,ABRecordRef類(lèi)型的記錄既可以代表單個(gè)人(kABPersonType),也可以是一個(gè)集合(kABGroupType)。

通訊錄中聯(lián)系人的各個(gè)屬性有兩種形式,單值屬性和多值屬性。單值屬性對(duì)應(yīng)的只有一個(gè)值,比如聯(lián)系人的姓名;多值屬性對(duì)應(yīng)的可能有多個(gè)值,比如聯(lián)系人有多個(gè)電話號(hào)碼等。

(a)常用方法


  1. CFTypeRef ABRecordCopyValue (

  2.   ABRecordRef record,

  3.   ABPropertyID property

  4. );

從一個(gè)記錄中獲取某個(gè)屬性對(duì)應(yīng)的值

(b)單值屬性對(duì)應(yīng)的方法


  1. CFStringRef ABRecordCopyCompositeName (

  2.   ABRecordRef record

  3. );

獲取聯(lián)系人完整的姓名。

(c)多值屬性對(duì)應(yīng)的方法


  1. CFTypeRef ABMultiValueCopyValueAtIndex (

  2.   ABMultiValueRef multiValue,

  3.   CFIndex index

  4. );

返回對(duì)應(yīng)位置處的屬性值


  1. CFStringRef ABMultiValueCopyLabelAtIndex (

  2.   ABMultiValueRef multiValue,

  3.   CFIndex index

  4. );

返回對(duì)應(yīng)位置處的屬性標(biāo)識(shí)


  1. CFArrayRef ABMultiValueCopyArrayOfAllValues (

  2.   ABMultiValueRef multiValue

  3. );

返回包含所有屬性值的數(shù)組


  1. CFIndex ABMultiValueGetCount (

  2.   ABMultiValueRef multiValue

  3. );

返回屬性值的個(gè)數(shù)

創(chuàng)新互聯(lián)www.cdcxhl.cn,專(zhuān)業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買(mǎi)多久送多久。

當(dāng)前題目:獲取通訊錄內(nèi)容-創(chuàng)新互聯(lián)
標(biāo)題來(lái)源:http://muchs.cn/article8/dpsdip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、面包屑導(dǎo)航手機(jī)網(wǎng)站建設(shè)、網(wǎng)站排名、微信小程序、全網(wǎng)營(yíng)銷(xiāo)推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化