Как следует из названия, в моем приложении iOS, использующем swift, у меня есть объект CNContactProperty, и я хочу извлечь из него номер телефона в виде строки.
Свойство CNContact возвращается из стандартного CNContactPickerViewController через функцию протокола делегата после того, как пользователь выбрал из него контакт.
Когда у контакта есть несколько телефонных номеров, я хочу иметь возможность извлечь тот, который пользователь нажал в представлении контакта, из CNContactProperty.
Я пытаюсь сделать что-то вроде этого:
let myString = theCNContactProperty.value as! String
Однако это вылетает с ошибкой (lldb). Я подозреваю, что, может быть, свойство «значение» не то, что мне нужно?
Я могу получить произвольные числа следующим образом:
let myString = contactProperty.contact.phoneNumbers[0].value.stringValue
Который возвращает первый номер контакта. Однако это не служит моей цели, поскольку я хочу иметь возможность извлекать конкретный номер, выбранный пользователем, когда у контакта более 1 номера.
Я работаю над этим часами и не могу понять, я был бы признателен за любую помощь, которую вы можете мне оказать!
Изменить: это НЕ дубликат предоставленной ссылки. Связанный вопрос касается извлечения всех номеров из контакта, а НЕ конкретно выбранного. В этом есть ОГРОМНАЯ разница.
theCNContactProperty.value
? - person dan   schedule 06.03.2017Any
, я спрашиваю, каков его фактический тип, когда вы к нему обращаетесь. Вы можете увидеть это в отладчике, установив точку останова в этой строке, или он должен печатать фактический тип в журнале сбоев, когда ваше приведение терпит неудачу. - person dan   schedule 06.03.2017__NSRetainCounters payload_data_2 Builtin.RawPointer 0x12255c4 0x012255c4 CoreFoundation
__NSRetainCounters instance_type Builtin.RawPointer 0x69cadc 0x0069cadc ..... (подробнее) - person b1skit   schedule 06.03.2017CNPhoneNumber
, и вам следует изменитьas! String
наas! CNPhoneNumber
, а затем взятьstringValue
. - person dan   schedule 06.03.2017(contactProperty.value as? CNPhoneNumber).stringValue
если выбранное свойство простоCNContactPhoneNumbersKey
- person Mahdi Moqadasi   schedule 07.10.2019