2017-04-13 4 views
0

まだiOS開発で新しく、写真をいくつか選択してすばやくアクセスできるアプリを作成しています。 CoreDataでは、写真自体の代わりに写真のreferenceUrlを保存します。この方法でアプリを起動すると、写真を読み込むことができます。iOSアプリを再起動してもカメラのロールに写真が残っていないか確認してください

写真を読み込む前に、それらがまだ存在していることを確認して、写真が存在するかどうかをreferenceUrlで確認する方法を理解する必要があります。

localPathを使用しても機能しません。常にfalseを返します。

私がどのように進めることができるか分かっていれば、とても感謝しています。おかげさまで

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 

     let imageUrl   = info[UIImagePickerControllerReferenceURL] as! NSURL 
     let imageName   = imageUrl.lastPathComponent 
     let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first! 
     let photoURL   = NSURL(fileURLWithPath: documentDirectory) 
     let localPath   = photoURL.appendingPathComponent(imageName!)! 
     let localPathString = String(describing: localPath) 

     let fileManager = FileManager.default 
     if fileManager.fileExists(atPath: localPathString){ 
      print ("Photo exists") 
     } else{ 
      print ("Photo does not exist") 
     } 
} 

答えて

0

ここでは解決策が見つかりました。

私はそのような私の上記のコードからimageUrlを使用します。

let assets = PHAsset.fetchAssets(withALAssetURLs: [imageUrl as URL], options: nil) 
if assets.firstObject != nil { 
    //Then the image is still there 
} 
else{ 
    //The image is not present anymore 
} 

お役に立てば幸いです。

関連する問題