Как преобразовать неуправляемый «CFString» в NSString?

Мое приложение имеет дело с контактными данными.

Метка телефона извлекается следующим образом

let locPhoneLabel : NSString = (ABMultiValueCopyLabelAtIndex(phones, numberIndex) != nil) ? ABMultiValueCopyLabelAtIndex(phones, numberIndex).takeUnretainedValue() as CFStringRef : ""

let phoneLabel:Unmanaged<CFString> = ABAddressBookCopyLocalizedLabel(locPhoneLabel)

Я не знаю, как преобразовать phoneLabel в NSString?


person Colateral    schedule 05.08.2015    source источник


Ответы (2)


Попробуй это:

let phoneLabel = ABAddressBookCopyLocalizedLabel(locPhoneLabel)
.takeRetainedValue() as? NSString

Если вам интересно, здесь есть отличный пост. Неуправляемый от NSHipster.

person tounaobun    schedule 05.08.2015

Мне помогло только:

let locLabel : CFStringRef = (ABMultiValueCopyLabelAtIndex(phoneNumbers, i) != nil) ? (ABMultiValueCopyLabelAtIndex(phoneNumbers, i).takeUnretainedValue()) as CFStringRef : ""
let noteForThisNumber = String (ABAddressBookCopyLocalizedLabel(locLabel).takeRetainedValue())
person Paul T.    schedule 20.04.2016