第一步,匯入contacts框架,import
contacts ,這個是不帶ui的框架,可以直接獲取聯絡人
// 檢查狀態
let status: cnauthorizationstatus = cncontactstore.authorizationstatusforentitytype(cnentitytype.contacts)
switch status
第二步,如果沒有獲取授權就去獲取
private func getauth()
// 根據status的狀態來判斷是否授權成功
print("status = \(status)")}}
第三步、獲取通訊錄資訊
// 獲取通訊錄資訊
private func getcontactmessage()
} catch let error
}
第四步、列印獲取的資訊
private func contactmessage() }}
下面介紹包含ui介面的通訊錄框架contactsui,使用之前要匯入import
contactsui
let contact = cncontactpickerviewcontroller()
contact.delegate = self
// 設定要搜尋的資訊,可以不設定這個屬性
contact.displayedpropertykeys = [cncontactgivennamekey, cncontactfamilynamekey, cncontactemailaddresseskey, cncontactbirthdaykey, cncontactimagedatakey, cncontactphonenumberskey]
// 設定某個搜尋的條件,不符合條件的項不可選(搜尋號碼大於2條的)
// 設定要搜尋的資訊,可以不設定這個屬性
contact.displayedpropertykeys = [cncontactgivennamekey, cncontactfamilynamekey, cncontactemailaddresseskey, cncontactbirthdaykey, cncontactimagedatakey, cncontactphonenumberskey]
// 搜尋某個屬性的條件
下面介紹cncontactpickerdelegate的**方法
extension viewcontroller: cncontactpickerdelegate
func contactpicker(picker: cncontactpickerviewcontroller, didselectcontact contact: cncontact)
func contactpicker(picker: cncontactpickerviewcontroller, didselectcontactproperty contactproperty: cncontactproperty)
func contactpicker(picker: cncontactpickerviewcontroller, didselectcontacts contacts: [cncontact])
func contactpicker(picker: cncontactpickerviewcontroller, didselectcontactproperties contactproperties: [cncontactproperty])
}
7 5 通訊錄排序
輸入n個朋友的資訊,包括姓名 生日 號碼,本題要求編寫程式,按照年齡從大到小的順序依次輸出通訊錄。題目保證所有人的生日均不相同。輸入第一行給出正整數n 10 隨後n行,每行按照 姓名 生日 號碼 的格式給出一位朋友的資訊,其中 姓名 是長度不超過10的英文本母組成的字串,生日 是yyyymmdd格式...
習題9 5 通訊錄排序
習題9 5 通訊錄排序 20分 輸入n個朋友的資訊,包括姓名 生日 號碼,本題要求編寫程式,按照年齡從大到小的順序依次輸出通訊錄。題目保證所有人的生日均不相同。輸入第一行給出正整數n 10 隨後n行,每行按照 姓名 生日 號碼 的格式給出一位朋友的資訊,其中 姓名 是長度不超過10的英文本母組成的字...
習題9 5 通訊錄排序
輸入n個朋友的資訊,包括姓名 生日 號碼,本題要求編寫程式,按照年齡從大到小的順序依次輸出通訊錄。題目保證所有人的生日均不相同。輸入第一行給出正整數n 10 隨後n行,每行按照 姓名 生日 號碼 的格式給出一位朋友的資訊,其中 姓名 是長度不超過10的英文本母組成的字串,生日 是yyyymmdd格式...