アプリで iPhone の連絡先を取得する必要があり、そのためのコードを記述しました。一部の iPhone では、ほとんどの連絡先が本物ではありません。つまり、名前は空白または「6.w S」のようなランダムな文字列で保存され、一部の連絡先は本物ではありません。アプリがクラッシュしているため、下の画像に示されているようなものではない連絡先を取得したいと考えています。では、そのような連絡先を取得しないようにするために、どのようなチェックを行う必要があるのでしょうか。私はSwiftを使用しており、私のコードも以下に書かれています:
私のコード:
var people = ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering(self.objAddressBook, nil, ABPersonGetSortOrdering()).takeUnretainedValue() as NSArray as [ABRecord]
for person in people
{
var multiPhones:ABMultiValueRef = ABRecordCopyValue(person, kABPersonPhoneProperty).takeRetainedValue()
for phoneNumbers in 0..<ABMultiValueGetCount(multiPhones)
{
var phoneNumber = ABMultiValueCopyValueAtIndex(multiPhones, phoneNumbers).takeRetainedValue() as! String
var nameOfPerson: String = (ABRecordCopyCompositeName(person).takeRetainedValue() as! String)
var personRecordDic = ["name":nameOfPerson,"phone":phoneNumber]
self.contactsArray.addObject(personRecordDic)
}
}
問題の原因となる連絡先