Unmanaged で詰まった

LSCopyApplicationURLsForURL()を使って、拡張子判別で実行可能なアプリ一覧を
取得しようとしたら、返される値が Unmanaged<cfarray> だと。
値を取り出す方法が分からず、キャストすると

'Unmanaged<cfarray>' is not convertible to 'CFArray'

とおこられる。google先生で調べても詰まってる人が多いのか、検索の仕方が悪いのか
より良い返事が返ってこない

そもそも Unmanaged って何?って思って調べたら、出てきたよ


Using Swift with Cocoa and Objective-C: Working with Cocoa Data Types の Unmanaged Objects って項目

takeUnretainedValue() か takeRetainedValue() 使って取り出せってことなのかな


とりあえず

let unmanagedAppList = LSCopyApplicationURLsForURL( URL, kLSRolesAll )
let appList = unmanagedAppList.takeUnretainedValue()

 

println( appList )
 
って書いたらちゃんととってきてくれたよ
 
 
takeUnretainedValue()使えって書いてある最後に
 
You can also invoke the retain()release(), and autorelease() methods on unmanaged objects, but this approach is not recommended.
 
って書いてあるけど、retain()やらrelease()やらする必要あるんかいね
分からん