国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS 聯系人(從 iOS7、iOS8 到 iOS9)

2019-11-09 15:55:37
字體:
來源:轉載
供稿:網友

從 iOS9 開始 Apple 對聯系人進行了重構,使用了 Contacts.framework。新的架構相對于之前的架構,獲取聯系人的方式更加靈活,并且因為是 OC (Swift)接口使用起來更加方便。 相對于老的架構,新的架構需要注意的地方主要有一下幾點:

新的架構讀取聯系人的時候需要提前指定需要獲取的數據范圍(在 CNContactFetchRequest 中)新的架構允許通過 NSPRedicate 來獲取或匹配聯系人新的架構中,聯系人的位置標識符從數值變成了字符串獲取聯系人的 fullName 的時候 AB 架構使用 ABRecordCopyCompositeName 即可。新的架構需要使用 [CNContactFormatter stringFromContact:contact style:CNContactFormatterStyleFullName] ,這里需要注意,使用 CNContactFormatter 來格式化聯系人名稱時同樣需要在 CNContactFetchRequest 中聲明,否則會拋異常。聲明的方式為 : // [CNContactFormatter descriptorForRequiredKeysForStyle:CNContactFormatterStyleFullName]用于聲明請求使用 CNContactFormatter 來獲取聯系人的 fullName[[CNContactFetchRequest alloc] initWithKeysToFetch:@[CNContactIdentifierKey, [CNContactFormatter descriptorForRequiredKeysForStyle:CNContactFormatterStyleFullName]]];

關于 Label

Label 是聯系人中用來區分同一個聯系人下面不同號碼通途的。聯系人架構預設了一些 Label 如:工作,住宅等。 這些預設的 Label 在 AB 架構和新的架構中都有統一的格式 _$!<Home>!$_ ,對于這些預設的 Label 可以通過系統接口來轉換成本地化的語言描述。這些接口是 ABAddressBookCopyLocalizedLabel[CNLabeledValue localizedStringForLabel:label] 。如,參數為 _$!<Home>!$_ 則轉化成中文后為 “家庭” (住宅)。 對于用戶自定義的 Label 則沒有這種特殊結構,用戶定義的是什么,接口就返回什么。 可以通過如下代碼獲取到原始的 Label

// 9 之前CFStringRef label = ABMultiValueCopyLabelAtIndex(record, index);CFRelease(label);// 9 之后CNLabeledValue<CNPhoneNumber *> *currentNumber = SomeNumber;NSString *label = currentNumber.label;

具體的接口使用可以參考下面兩篇文章 參考文章01 參考文章02


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海兴县| 惠州市| 沧州市| SHOW| 厦门市| 兴安县| 绍兴县| 金乡县| 鲁甸县| 泰州市| 嘉峪关市| 阜阳市| 仁化县| 潼南县| 开鲁县| 平潭县| 杂多县| 泾源县| 得荣县| 宾阳县| 龙山县| 宣化县| 墨竹工卡县| 宁德市| 德江县| 巴彦淖尔市| 凤庆县| 剑川县| 民勤县| 城步| 滦南县| 根河市| 北京市| 白朗县| 东安县| 虹口区| 广汉市| 呼图壁县| 大冶市| 天峨县| 巨野县|