Я тестирую структуру iOS AddressBook, и я пытаюсь понять, что, как лучше всего извлечь значение на конкретном ярлыке и задавать вопрос в то же время, если порядок этих меток для любой случайной причины.Что такое заказ этикеток в ABMultiValueCopyLabelAtIndex()
Это то, что я делаю, когда я добавляю новый контакт или добавить к существующему:
let phone:ABMutableMultiValue = ABMultiValueCreateMutable(
ABPropertyType(kABStringPropertyType)).takeRetainedValue()
ABMultiValueAddValueAndLabel(phone, phoneNumber, kABPersonPhoneMainLabel, nil)
И позже в вызове делегата на unknownPersonViewController()
я это делаю:
let phone: ABMultiValueRef = ABRecordCopyValue(person,
kABPersonPhoneProperty).takeRetainedValue()
firstPhone = ABMultiValueCopyValueAtIndex(phone, 0).takeRetainedValue() as! String
Обратите внимание, что я предполагаю, что основная метка указана в индексе . Я знаю, что сравнение с меткой CFString возможно, но эти ярлыки выглядят забавными, давая мне это странное чувство кишки, когда сравнивает их снова. Итак, я не совсем уверен, как это сделать.
Также обратите внимание, что понятия «главная этикетка» не существует. Пользователь может иметь эти номера телефонов в любом порядке: у вас нет способа узнать, какой номер телефона считается «основным», если таковой имеется. – matt
Хорошо, спасибо @matt за указание на это. Я хотел узнать это по чужим впечатлениям :) –
Кстати, я этого не замечал до сих пор, но я большой поклонник вашей книги! Спасибо, что вложили в это невероятное усилие. –