CFDictionaryの特定の(または任意の)キーにアクセスする際に問題があります。 正直なところ...私は本当にあなたがスウィフトでこれを行うために必要な方法を取得していないと私はそれが過度に複雑だと思うCFDictionaryがSwift3のキーの値を取得する
マイコード:値を取得します。私が達成したい何
if let session = DASessionCreate(kCFAllocatorDefault) {
let mountedVolumes = FileManager.default.mountedVolumeURLs(includingResourceValuesForKeys: [], options: [])!
for volume in mountedVolumes {
if let disk = DADiskCreateFromVolumePath(kCFAllocatorDefault, session, volume as CFURL) {
let diskinfo = DADiskCopyDescription(disk);
var volumeValue = CFDictionaryGetValue(diskinfo, <#T##key: UnsafeRawPointer!##UnsafeRawPointer!#>)
}
}
キーまたはフィールドDAVolumeNetworkを変数volumeValueに入力します。 kDADiskDescriptionVolumeNetworkKeyをに転送する必要がありますか?CFDictionaryGetValueメソッド?これをどのように達成するのですか?
は、説明やコードをありがとう!私はまだCFDictionaryを取得していませんが、便利なものにキャストできればいいです。 – nja
@nja:CFDictionaryはvoidポインタを渡してC APIを使います。 (Objective-)Cでは、単純にvoidポインタのオブジェクトポインタを渡すことができ、その逆もあります。あなたはそれをSwiftで行うことはできず、代わりにUnmanagedタイプを使用する必要があります。http://stackoverflow.com/questions/33294620/how-to-cast-self-to-sunsafemutablepointervoid-type-in-swiftを比較してください。 –
CFDictionaryはNSDictionaryでフリーダイヤルされており、これはSwiftで値を取得する最も簡単な方法です:https://stackoverflow.com/a/45625787/225810 – Gabriel