いつも自分で書くコードはすっかりSwiftですが、システムライブラリはまだまだObjective-Cのこともあります。
ObjCのライブラリが返してくれる CFString
をSwiftの String
にするメモ。
基本的には、CFString
はそのままConvertできます。
var str1: CFString = "Hello!" as CFString var str2: String = str1 as String
ただ、Unmanaged
でかえされた場合には takeRetainedValue
を使いましょう。
var propertyStr: Unmanaged<CFString>? //これだとダメ let deviceName1: String = propertyStr as? String ?? "(cannot convert...)" //これならOK let deviceName2: String = propertyStr?.takeRetainedValue() as? String ?? "(cannot convert...)"