連絡先アプリに「iCloud」、「yahoo」、「gmail」などのグループがあります。迅速に、Gmailのソースから連絡先を取得することは可能ですか?CNContact swiftの連絡先を確認する方法は?
7
A
答えて
0
iCloud/yahoo/gmailなどはCNContainerです。 Gmail/iCloudはCNContainerTypeCardDAVタイプです。最初にすべての連絡先を取得し、その連絡先のCNContainerTypeに基づいて配列をフィルタリングする必要があります。しかし残念ながら、私たちはそれがどのCardDav(iCloud/Gmail)であるかを特定できません。
ここで詳細を参照してください:あなたはここにコンタクトFrameworkランタイムヘッダを見て、これを達成することができますHow do we know which CNContainer represents iCloud?
0
:https://github.com/JaviSoto/iOS10-Runtime-Headers/tree/master/Frameworks/Contacts.framework
あなたはperformSelector
メッセージでそれらを呼び出すことができます。ちょっと面倒ですが、動作します。それはCNContainersの一般的な使用法についてのすべてだ
CNContactStore* store = [CNContactStore new];
// fetch accounts that sync contacts with your device (array of CNAccount)
// since CNAccount class isn't available by default, we treat it as NSObject for our puproses
NSArray* accounts = [store performSelector:@selector(accountsMatchingPredicate:error:) withObject:nil withObject:nil];
// you can iterate through this array, I just use first one for this example
NSObject* account = [accounts firstObject];
// get identifier of the account for NSPredicate we use next
NSString* accountId = [account performSelector:@selector(identifier)];
// Display name of the account (aka Yahoo, Gmail etc.)
NSString* accountName = [account performSelector:@selector(_cnui_displayName)];
// NSPredicate that help us to get corresponding CNContainer
NSPredicate* containerPredicate = [[CNContainer class] performSelector:@selector(predicateForContainersInAccountWithIdentifier:) withObject:accountId];
// Fetching CNContainer
CNContainer* container = [[store containersMatchingPredicate:containerPredicate error:nil] firstObject];
その後:
は一般的に何をしなければならないことは次のようです。 お待ちしています。
PS。 iOS 10で動作します。将来のバージョンではContacts.frameworkランタイムの変更を確認する必要があります。
PPS。私は迅速にチェックしませんでしたが、いずれかを動作させる必要があります。
私の英語のために残念です。 幸運:)
関連する問題
- 1. Swift:連絡先を連絡先に追加する方法
- 2. 重複したCNCONTACT配列swift 3連絡先フレームワーク
- 3. iPhone連絡先からWhatsApp連絡先のみを取得する方法は?
- 4. Google People APIとの連絡先の数を確認する
- 5. 完全な連絡先のページを確認する
- 6. Salesforceで既存の連絡先をアカウントIDで確認する
- 7. 連絡先のiMessageサポートをプログラムで確認する
- 8. 連絡先リスト内の連絡先をすべて削除する方法
- 9. 連絡先のlookup_keyを使用して連絡先を削除する方法
- 10. Google共有の連絡先(外部の連絡先)を更新する方法
- 11. Swift - ContactPickerViewControllerから連絡先の詳細を取得する
- 12. 連絡先フォームのランダム確認に関する質問
- 13. 認証取得連絡先
- 14. CNContactを使用してObjective - Cで最後に変更された連絡先を取得する方法は?
- 15. Swift 3 SpriteKit連絡先の検出
- 16. 印刷方法Nagiosの連絡先グループまたは連絡先ホストパフォーマンス出力データ
- 17. Androidの連絡先連絡先遅い
- 18. 連絡先の連絡先メールアドレス
- 19. swiftを使用してiOSグループに所属する連絡先を一覧表示する方法
- 20. Outlookの連絡先に連絡する
- 21. 連絡先プロバイダ:デフォルトで連絡先をリストから隠す方法
- 22. 拒否連絡先(連絡先フレームワーク、iOS)
- 23. イオンネイティブの連絡先を開く方法
- 24. 連絡先フレームワークを使用してグループに連絡先を追加する
- 25. アンドロイドの連絡先から連絡先を削除する
- 26. BlackBerryの連絡先リストから連絡先を取得する
- 27. Android:連絡先の写真と連絡先の連絡先の挿入インテント
- 28. 電話帳からの連絡先の取得iOS Swift
- 29. iOSからWhatsappの連絡先にメッセージを送信する方法 - Swift
- 30. Swiftで「John」という名前の連絡先を取得する方法3
実行セレクタは私とそのクラッシュのために働いていません。これを行う方法はありますか? –
@Sunil_Vaishnavクラッシュの原因となるコードを教えてください。それとも、私が書いたものを使っているのですか? – NewObjective