2015-08-05 5 views
4

Мое приложение имеет дело с данными контактов.Как преобразовать неуправляемый в NSString?

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

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

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

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

ответ

9

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

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

Существует большой пост здесь, если вы заинтересованы. Unmanaged from NSHipster.

0

Для меня это только помогло:

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