2017-05-20 6 views
1

main.storyboard에서 UIImageView 및 버튼이 있습니다. 나는 카메라를 통해 파일 시스템으로 가져간 나의 이미지 마녀를 저장하고 싶다. 하지만 내 앱을 다시로드하면이 이미지가 사라집니다. 내가 뭘 잘못했는지 말해 줄래?파일 시스템에 이미지 저장

정확히 당신이 잘못하고있는 것을
import UIKit 

class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { 


    @IBAction func useCamera(_ sender: UIButton) { 

     let picker = UIImagePickerController() 
     picker.sourceType = .camera 

     self.present(picker, animated: true, completion: nil) 
     picker.delegate = self 
    } 

    @IBOutlet weak var imageView: UIImageView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

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

     imageView.image = info[UIImagePickerControllerOriginalImage] as? UIImage 
     picker.dismiss(animated: true, completion: nil) 

     if imageView.image == UIImage(named: "example.jpg") { 
      if let data = UIImageJPEGRepresentation(imageView.image!, 0.8) { 
       let filename = getDocumentsDirectory().appendingPathComponent("copy.png") 
       try? data.write(to: filename) 
      } 
     } 
    } 

    func getDocumentsDirectory() -> URL { 
     let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask) 
     let documentsDirectory = paths[0] 
     return documentsDirectory 
    } 
} 

답변

0

, 나도 몰라 : 이 내 코드입니다. 나는 당신의 코드를 테스트하지 않았다. 이것은 작동하는 저장 루틴입니다. 현재 앱 스토어에있는 앱에서 테스트됩니다.

func save(image: UIImage, with fileName: String, and imageName: String?) { 

    let documentsDirectory = FileManager().urls(for: .documentDirectory, in: .userDomainMask).first 
    let imageStore = documentsDirectory?.appendingPathComponent(fileName) 
    let imageData = UIImagePNGRepresentation(image) 

    do { 
     try imageData?.write(to: imageStore!) 
    } catch { 
     print("Couldn't write the image to disk.") 
    } 
}