通过这种方法,我已经将联系人作为字典存储在可变数组上:
var addressBookReff: ABAddressBookRef = ABAddressBookCreateWithOptions(nil, nil).takeRetainedValue()
var arrOfDictContacts:NSMutableArray = NSMutableArray()
let people:NSArray = ABAddressBookCopyArrayOfAllPeople(addressBookReff).takeRetainedValue()
for person in people{
if let name:String = ABRecordCopyValue(person, kABPersonFirstNameProperty)?.takeRetainedValue() as? String {
let numbers:ABMultiValue = ABRecordCopyValue(person, kABPersonPhoneProperty).takeRetainedValue()
if let number:String = ABMultiValueCopyValueAtIndex(numbers,0)?.takeRetainedValue() as? String {
arrOfDictContacts.addObject(["\(name)":"\(number)"])
}
}
}在这里,arrOfDictContacts是我的可变数组,它包含作为字典的名称和数字。就像这样:
arrOfDictContacts = ({ my = 12131;}, { doctor = 54445;}, { AL = 543212601;}, { customer = 121; } }现在我有了另一个数组的名字
arrOfNames = [my, AL]我想从arrOfNames获得arrOfDictContacts的相应号码
ExpectedOutput :
arrOfNumbers = [12131, 543212601] 我该怎么做?
发布于 2015-09-08 09:52:52
编辑:
因为您的数组包含字典,所以实现它的方法是检查每个字典与您的数组。如下所示:
var arrOfNumbers : [String] = []
for dict in arrOfDictContacts {
for name in arrOfNames {
if let value = dict[name] as? String {
arrOfNumbers.append(value)
}
}
}https://stackoverflow.com/questions/32453969
复制相似问题