原文地址: http://www.infoq.com/articles/whats-new-ios9-frameworks
在2015年的WWDC大會(huì)上,蘋果公司首次推出了 iOS 9错蝴。雖然新的 iOS 9 SDK 并沒有引入像 iOS 8 那么多新的或改進(jìn)的特性(iOS 8發(fā)布時(shí)包括了超過4000個(gè)新的API), 但它還是提供了大量的新功能和改進(jìn)。伴隨著新SDK的推出,iOS 9還同時(shí)集成了一些新的開發(fā)者工具以及新版的Swift和Objective-C(蘋果主要編程語言)椭岩。
這一系列更新的目的在于引入所有在蘋果最新的手機(jī)操作系統(tǒng)上開發(fā)app所需的東西--包括五篇涵蓋 iOS 9 SDK的文章顾瞻,Swift新的特性宿接,Objective-C,開發(fā)者工具以及蘋果最新的bitcode血公。
這篇InfoQ文章是其中的一部分“iOS 9開發(fā)者”昵仅。你可以通過RSS訂閱接收相關(guān)通知。
聯(lián)系人
新的聯(lián)系人API對(duì)于之前的地址薄框架來說是個(gè)很有必要的替換累魔,它主要提供了如下改進(jìn):
- 相比地址薄中對(duì)象無法跨線程而言提供了部分線程安全
- 優(yōu)化了只讀情況下的性能
- 針對(duì)地址薄中幾種不透明的類型(例如ABRecordRef摔笤,ABPropertyID等)提供了高級(jí)API。
新的API的基礎(chǔ)是CNContact類薛夜,這個(gè)類是線程安全的籍茧、Immutable(即在Swfit術(shù)語表中有語義值)并且提供聯(lián)系人屬性的訪問權(quán)限(例如聯(lián)系人的姓名、頭像或者聯(lián)系電話)梯澜。
CNContact有一個(gè)可變的子類名為CNMutableContact
,這個(gè)類可以修改聯(lián)系人的屬性值寞冯。你可以通過拷貝一個(gè)已存在的CNContact或者使用工廠方法來創(chuàng)建一個(gè)CNMutableContact的實(shí)例渴析。相比CNContact,CNMutableContact不是線程安全的吮龄。
聯(lián)系人的屬性值是通過CNLabeledValue來表示的, 這個(gè)值是另一個(gè)不可變的俭茧,線程安全的類,該類將聯(lián)系人屬性值包含在元組中漓帚,例如家庭電話母债、工作電話、iPhone等尝抖。聯(lián)系人屬性可以有多個(gè)值毡们,比如多個(gè)電話號(hào)碼或郵件地址,這個(gè)是通過一個(gè)CNLabeledValue數(shù)組來表示的昧辽。聯(lián)系人框架提供了一些定義好的標(biāo)簽例如CNLabelHome衙熔,CNLabelEmailiCloud等。當(dāng)然搅荞,你也可以創(chuàng)建自定義標(biāo)簽红氯。