商品の説明と画像ファイル名を含む製品ファイルを含む Core Data を使用するアプリに取り組んでいます。別のプラットフォームの以前のバージョンでは、このファイル名には「elephant.jpg」のようなものが含まれ、関連する画像も「elephant.jpg」と呼ばれていました。このようにして、データをオフラインで入力して検証し、アプリにインポートすることができます。
IOS8 と写真フレームワークを使用すると、写真画像に永続的に名前を付ける方法がないように見えるため、これを行うことはできません。次を使用して画像メタデータを調べてみました。
PHImageManager.defaultManager().requestImageDataForAsset(asset, options: nil) {
imageData,dataUTI,orientation,info in
println("Info %@", info) }
ただし、これは次のような情報を返します
/private/var/mobile/Media/PhotoData/PhotoCloudSharingData/8083971319/2cc2fcd0-d19b-4803-b34f-35a285bc1fab/100CLOUD/**IMG_0008.JPG**
ここで、IMG_0008.JPG は元の画像とは関係ありません。
私は現在、各画像がその作成日に対して一意のdateTimeを持ち、これをProduct.fileNameに保存し、これを使用して画像を取得することで、これを部分的に回避しています
var fetchOptions = PHFetchOptions()
fetchOptions.predicate = NSPredicate(format: "creationDate == %@", imageCreationDate) // use CreationDate in predicate
var assets = PHAsset.fetchAssetsInAssetCollection(rec, options: fetchOptions)
ただし、これは管理が難しく、iPad にインポートした後に画像をファイルに一致させる必要があるため、エクスポート可能なデータファイルを作成するのは簡単ではありません。
iCloud Photo Sharing で画像を共有した後も残る Mac 上の iPhoto の画像に名前を付けるだけでよければ、私の問題は解決するでしょう。
私はどんな提案にもとても感謝しています!