Я сохранил свои контакты в виде словаря в изменяемом массиве с помощью этого метода:
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
Ожидаемый результат:
arrOfNumbers = [12131, 543212601]
Как я могу это сделать?
name
, чтоString is not convertible to Int
08.09.2015[String]
. 08.09.2015arrOfNumbers
, получу [ ]. Если я поставлю точку останова внутри двух циклов for, она не остановится, я думаю, она не войдет в цикл for 08.09.2015arrOfNames
пуст? Попробуйте объявить его какlet arrOfNames = ["my", "AL"]
. Работал на меня. 08.09.2015arrOfDictContacts
илиarrOfNames
пусты, либо их имена не соответствуют контакту. Проверьте свои данные и повторите попытку. 08.09.2015arrOfDictContacts
был пуст, так как я неосознанно объявил дубликат. Теперь он работает как шарм. Спасибо :) 08.09.2015arrOfDictContacts
. Мне нужны только числа с именем массива «arrOfNames». 10.09.2015