前提・実現したいこと
連絡先から取得したものを作成しているアプリの連絡帳として表示したい
発生している問題・エラーメッセージ
ビルドすると、同じ人が重複して表示されてしまう。peopleを出力すると重複が確認できました。
該当のソースコード
let keysToFetch = [CNContactGivenNameKey, CNContactFamilyNameKey,CNContactPhoneNumbersKey,CNContactEmailAddressesKey] as [CNKeyDescriptor] let store = CNContactStore() var people = [CNContact]() do { // 連絡先データベースからここでは苗字・名前・電話番号情報を取得 try store.enumerateContacts(with: CNContactFetchRequest(keysToFetch: keysToFetch)) {(contact, cursor) -> Void in people.append(contact) //重複して取得していました print(people) // peopleに取得した連絡先の数だけループ for humen in people{ for number in humen.phoneNumbers { let emailAddresses: [CNLabeledValue<NSString>] = humen.emailAddresses for emailAddress in emailAddresses { let familyName: String = humen.familyName let givenName: String = humen.givenName let phonNumber:String = (number.value as CNPhoneNumber).stringValue let emailText:String = emailAddress.value as String let contactModel = ContactModel(name: familyName + givenName, phonNumber: phonNumber, mailAddres: emailText) self.contactModelArray.append(contactModel) } } } } } catch { print("Failed to fetch contact, error: (error)") // Handle the error }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/25 01:57