ファイルからEXIFデータを取得するコードがありますが、NSタイプが使用されています。私はSwift 3に準拠させ、DictionaryやStringのような標準的な高速タイプを使用するのが好きです。 "NS"を削除すると、 "。value()"が存在しないというエラーが表示されます。新しい関数呼び出しとは何か、コンパイラによるヒントはありません。NSDictionaryからDictionaryに切り替える
let imageSource = CGImageSourceCreateWithURL(url as CFURL, nil)
let imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSource!, 0, nil)! as NSDictionary
let exifDict = imageProperties.value(forKey: "{Exif}") as! NSDictionary
let dateTimeOriginal = exifDict.value(forKey: "DateTimeOriginal") as! NSString
print ("DateTimeOriginal: \(dateTimeOriginal)")
let PixelXDimension = exifDict.value(forKey: "PixelXDimension") as! Double
print ("PixelXDimension: \(PixelXDimension)")
let exifDictTIFF = imageProperties.value(forKey: "{TIFF}") as! NSDictionary
// optional
if let Software = exifDictTIFF.value(forKey: "Software") as? NSString {
print ("Software: \(Software)")
}
どのように変更するのですか?
さらに: 使用して、この第二行は、「メンバー 『添字』にあいまいな参照」エラーを配信する
let imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSource!, 0, nil)! as Dictionary
let exifDict = imageProperties["{Exif}"] as! Dictionary
!
キーサブスクリプション 'imageProperties [" {Exif} "]'を使用してください。辞書から単一の値を取得するには、 'valueForKey'を使用しないでください。しかし注意してください: 'CGImageSourceCopyPropertiesAtIndex'を' Dictionary'を動かすようにキャストすることは、私が覚えている限り動作しませんでした。しかし、これはSwift 3で修正される可能性があります。 – vadian
Ok、どうすればいいですか?私はNSDictionaryでうまく動作します。そして私は辞書を持っているのが好きです。 – Peter71
辞書は一般的なものです。あなたは 'Dictionary' –
vadian