Macos “快速抓取”;“我的名片”;CNContact

Macos “快速抓取”;“我的名片”;CNContact,macos,swift,swift2,cncontact,Macos,Swift,Swift2,Cncontact,我似乎不知道如何从联系人那里获取用户的“我的卡”。我正在使用swift开发一个本机Mac应用程序。它不是来自(MacOS 10.11的全新版本)CNContact,而是返回登录用户ABPerson记录的MacOS 为了得到vCard的等价物 上述解决方案的优点在于,它可以在较旧的MacOS版本(例如MacOS 10.9、10.10)上运行 Marek指出了CNContactStore中的UnifiedEconContactWithKeyFetch:API,但在我键入此答案时,它只记录在SDK中的

我似乎不知道如何从联系人那里获取用户的“我的卡”。我正在使用swift开发一个本机Mac应用程序。

它不是来自(MacOS 10.11的全新版本)CNContact,而是返回登录用户ABPerson记录的MacOS

为了得到vCard的等价物

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


Marek指出了CNContactStore中的
UnifiedEconContactWithKeyFetch:
API,但在我键入此答案时,它只记录在SDK中的.h头文件中,而没有记录在中。

有一个CNContactAPI用于此,但它仅在macOS 10.11+中可用,迄今为止在任何版本的iOS中都没有

(对于iOS来说,恢复到ABAddressBook并不能解决问题,因为
me()
方法同样只适用于MacOS,尽管早在MacOS 10.2+就有了。)

当然也可以获取其他密钥:

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]

您正在寻找CNContactStore@selector(unifiedmicontactwithkeystefeatch:error:)CNContactStore是获取CNContact的地方。还有“我”的联系方式。基本上,如果你不在那里保存联系人,你的应用程序就会崩溃,但这是另一个话题,感谢你注意到@marekh;我今天在谷歌上只看到五个API的点击率。如果它在头文件中,你可以使用它。有时文档落后于头文件。(尝试查找核心音频的功能参考文档。继续。我敢说。)它现在也在官方文档中。它可以用于移动应用程序?不。很遗憾,iOS上不支持。
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]