我在新应用中使用Swift。在这里,我试图从AddressBook访问电子邮件ID。一切都很好,但最后我得到了不受管理!来自ABMultiValueCopyValueAtIndex(multi,0)。
那么如何从中转换或提取字符串呢?
提前致谢!
答案 0 :(得分:2)
试试这个:
let str = yourVar.takeRetainedValue() as String
答案 1 :(得分:1)
let value : String? = ABMultiValueCopyValueAtIndex(multivalue, 0).takeRetainedValue() as? String
答案 2 :(得分:1)
尝试使用此功能将Unmanaged转换为Stirng
func convertCfTypeToString(cfValue: Unmanaged<AnyObject>!) -> String?{
let value = Unmanaged.fromOpaque(
cfValue.toOpaque()).takeUnretainedValue() as CFString
if CFGetTypeID(value) == CFStringGetTypeID(){
return value as String
} else {
return nil
}
}
用法:
let value = convertCfTypeToString(cfValue: ABMultiValueCopyValueAtIndex(multivalue, 0))