首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Swift抓取“我的卡”CNContact

Swift抓取“我的卡”CNContact
EN

Stack Overflow用户
提问于 2015-10-23 05:39:50
回答 2查看 1.9K关注 0票数 7

我似乎想不出如何从通讯录中获取用户的“我的卡”。我正在使用swift开发一个原生Mac应用程序。

EN

回答 2

Stack Overflow用户

发布于 2015-10-23 11:23:14

它不是来自( MacOS 10.11的全新版本) CNContact,而是MacOS的ABAddressBook framework has a method called me(),它将返回登录用户的ABPerson记录。

并获得与vCard等效的call vCardRepresentation() on that ABPerson object

上述解决方案的优点在于,它可以在较早的MacOS版本(例如MacOS 10.9、10.10)上运行。

Marek指出了CNContactStore中的SDK,但在我输入这个答案的时候,它只记录在unifiedMeContactWithKeysToFetch:的.h头文件中,而不是the CNContactStore documentation中。

票数 0
EN

Stack Overflow用户

发布于 2017-08-05 08:33:38

有一个CNContact接口可以做到这一点,但它只在macOS 10.11+中可用,而不是在任何最新版本的iOS中。

(对于iOS,恢复到ABAddressBook并不能解决问题,因为me()方法同样只适用于MacOS,尽管最早可以追溯到macOS 10.2+。)

代码语言:javascript
运行
复制
import Contacts

let nameKeys = [
    CNContactNamePrefixKey,
    CNContactGivenNameKey,
    CNContactMiddleNameKey,
    CNContactFamilyNameKey,
    CNContactNameSuffixKey,
    ] as [CNKeyDescriptor]

do {
    let contactStore = CNContactStore()
    let me = try contactStore.unifiedMeContactWithKeys(toFetch: nameKeys)
} catch let error {
    print("Failed to retreive Me contact: \(error)")
}

当然,还可以获取额外的密钥:

代码语言:javascript
运行
复制
let allContactKeys = [
    CNContactNamePrefixKey,
    CNContactGivenNameKey,
    CNContactMiddleNameKey,
    CNContactFamilyNameKey,
    CNContactNameSuffixKey,
    CNContactOrganizationNameKey,
    CNContactDepartmentNameKey,
    CNContactJobTitleKey,
    CNContactBirthdayKey,
    CNContactNicknameKey,
    CNContactNoteKey,
    CNContactNonGregorianBirthdayKey,
    CNContactPreviousFamilyNameKey,
    CNContactPhoneticGivenNameKey,
    CNContactPhoneticMiddleNameKey,
    CNContactPhoneticFamilyNameKey,
    CNContactImageDataKey,
    CNContactThumbnailImageDataKey,
    CNContactImageDataAvailableKey,
    CNContactTypeKey,
    CNContactPhoneNumbersKey,
    CNContactEmailAddressesKey,
    CNContactPostalAddressesKey,
    CNContactDatesKey,
    CNContactUrlAddressesKey,
    CNContactRelationsKey,
    CNContactSocialProfilesKey,
    CNContactInstantMessageAddressesKey,
    ] as [CNKeyDescriptor]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33291257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档