資源描述:
《ios開發(fā)-ios9新特性之通訊錄訪問》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、http://www.mobiletrain.org/iOS開發(fā)-iOS9新特性之通訊錄訪問在iOS開發(fā)中,如果一提到通訊錄開發(fā),每一位使用過AddressBook框架API的開發(fā)人員應(yīng)該都會皺著眉頭說,AddressBook框架的API真是太難使用了。因?yàn)锳ddressBook.framework是一個用C語言編寫的底層框架,對于很多剛?cè)腴T的新手開發(fā)人員來說,很難理解并使用,而且在開發(fā)使用過程中無法使用ARC來管理內(nèi)存,需要自己管理內(nèi)存。給開發(fā)帶來了許多不便。在iOS9發(fā)布以后,這一切將成為歷史,iOS9中提供了一套更
2、加容易理解和易用的的Contacts框架來取代了AddressBook框架來進(jìn)行通訊錄的開發(fā),使開發(fā)過程更加簡單明了。當(dāng)在WWDC大會中宣布AddressBook框架會在iOS9中廢棄,并啟用全新的Contacts框架來支持通訊錄訪問時,現(xiàn)場爆發(fā)的長時間的歡呼聲,間接證明了開發(fā)人員對AddressBook框架的嫌棄程度和對Contacts框架的歡迎。但是很多初學(xué)者在學(xué)習(xí)時,發(fā)現(xiàn)很多資料都是使用蘋果的新語言swift來描述的。很少能找到使用Objective-C來描述的。所以在這里簡單的使用Objective-C來描述一下
3、在iOS9中,如何使用Contacts框架來進(jìn)行通訊錄的開發(fā)。下面正式開始介紹Contacts庫在使用Contacts框架時,需要在工程中導(dǎo)入Contacts.framework和ContactsUI.framework這兩個庫Contacts.framework這個庫主要提供了半天聯(lián)系人操作的方法,常用的類如:北京千鋒互聯(lián)科技有限公司版權(quán)所有http://www.mobiletrain.org/CNContact聯(lián)系人類,用來描述一個聯(lián)系人的信息CNSaveRequest用來操作聯(lián)系人的請求類,通過這個類可以對聯(lián)系人進(jìn)
4、行增,刪,改,查等操作CNContactStore聯(lián)系人存儲類,用來執(zhí)行請求的操作導(dǎo)入頭文件#import#import創(chuàng)建一個CNContactStore對象,這個類是Contacts框架中最常用的一個類,這個類表示設(shè)備中通訊錄的數(shù)據(jù)庫,主要負(fù)責(zé)設(shè)備中通訊錄的數(shù)據(jù)庫與真實(shí)數(shù)據(jù)庫之間的通信。_contactStore=[[CNContactStorealloc]init];1、創(chuàng)建聯(lián)系人對象在創(chuàng)建聯(lián)系人對象時,有不可變和可變兩種聯(lián)
5、系人方式CNContact不可變聯(lián)系人一般用于讀取聯(lián)系人時使用CNMutaleContact可變聯(lián)系人一般用于創(chuàng)建聯(lián)系人時使用CNMutableContact*contact=[[CNMutableContactalloc]init];2、初始化聯(lián)系人的信息//設(shè)置聯(lián)系人的頭像contact.imageData=UIImageJPEGRepresentation([UIImageimageNamed:[dictobjectForKey:@"Photo"]],1);//設(shè)置名字NSString*userName=[dict
6、objectForKey:@"UserName"];//設(shè)置名:相當(dāng)于firstNamecontact.givenName=[userNamesubstringToIndex:1];北京千鋒互聯(lián)科技有限公司版權(quán)所有http://www.mobiletrain.org///設(shè)置姓:相當(dāng)于lastNamecontact.familyName=[userNamesubstringFromIndex:1];//設(shè)置郵箱NSString*homeString=[NSStringstringWithFormat:@"%@@139.c
7、om",[dictobjectForKey:@"Telephone"]];//CNLabeledValue對象主要用于創(chuàng)建一些聯(lián)系人屬性的鍵值對應(yīng),通過這些對應(yīng),系統(tǒng)會幫我們進(jìn)行數(shù)據(jù)的格式化//例如CNLabelHome,就會將號碼格式成家庭郵箱的格式其它格式還包括//家庭CNLabelHome//工作CNLabelWork//其他CNLabelOther//郵箱地址CNLabelEmailiCloud//url地址CNLabelURLAddressHomePage//日期constCNLabelDateAnnivers
8、aryCNLabeledValue*homeEmail=[CNLabeledValuelabeledValueWithLabel:CNLabelHomevalue:homeString];NSString*workString=[NSStringstringWithFormat:@"%@@1000phone.com"