我似乎無法弄清楚如何從聯繫人中抓取用戶「我的名片」。我正在開發一個使用swift的本地Mac應用程序。Swift搶「我的名片」CNContact
回答
它不是來自(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中的unifiedMeContactWithKeysToFetch:
API,但在輸入此答案時,它只記錄在SDK中的.h頭文件中,而不是在the CNContactStore documentation中。
CNContactStore是從哪裏獲取CNContact的地方。還有「我」的聯繫方式。基本上,如果你不保存聯繫人,那麼你的應用會崩潰,但這是一個不同的話題 –
感謝注意@marekh;我今天在Google上看到的這個API只有5個點擊。 –
如果它在頭文件中,您可以使用它。有時文檔滯後於頭文件。 (試着找到Core Audio的功能參考文檔,繼續,我敢。) –
這裏有一個CNContact api,但它只在macOS 10.11+中可用,而不是在任何版本的iOS中可用。
(對於iOS,恢復到ABAddressBook不能解決問題,因爲me()
方法有同樣僅適用於MacOS,雖然追溯到的MacOS 10.2+)
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)")
}
當然也可以取附加鍵:
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]
它是可移動的應用程序? –
沒有。不幸的是,在iOS上不支持。 –
- 1. CNContact顯示名稱目標c/swift
- 2. 轉換電子名片到CNContact
- 3. Swift 3/Xcode 8 - CNContact [access] <Private>
- 4. 如何將電子名片轉換成CNContact
- 5. JSON編碼/解碼一般的Swift CNContact對象
- 6. CNContact屬性編碼
- 7. 我能爭搶的Python
- 8. CNContact保存聯繫人時不會發送聯繫人圖片
- 9. CNContact爲Mac OS X 10.11
- 10. 電子郵件CNContact as vCard
- 11. 我如何搶在JSF
- 12. 我怎麼能搶在python
- 13. Facebook如何搶先搶先佔有它將來需要的網址擴展名?
- 14. 的R - 搶
- 15. 的ScrollViewer搶購
- 16. 的Python:搶串
- 17. 搶下的UIBarButtonItem
- 18. 圖片幻燈片Swift ios
- 19. 搶值
- 20. preg_match_all搶
- 21. 搶建
- 22. 如何在通過iOS Swift照片框架保存照片時命名照片
- 23. Swift To Group圖片
- 24. 如何通過AppleScript的搶HTML片段用javascript
- 25. 是否有跨設備CNContact標識符?
- 26. 如何使用CNPostalAddress創建CNContact?
- 27. CNContact unifiedContact與Mac OS Sierra破壞
- 28. GKE搶佔池
- 29. 搶在C
- 30. codeception:grabAttributeFrom不要搶
您正在尋找CNContactStore @selector(unifiedMeContactWithKeysToFetch:錯誤:) –