2017-05-20 2 views
1

Bei main.storyboard habe ich UIImageView und Button. Ich möchte mein Bild speichern, das ich über die Kamera in das Dateisystem aufgenommen habe. Aber wenn ich meine App erneut lade, ist dieses Bild verschwunden. Sag mir bitte, was ich falsch gemacht habe? Dies ist mein Code:Bild in Dateisystem speichern

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 
    } 
} 

Antwort

0

, was genau Sie tun falsch, ich weiß es nicht. Ich habe Ihren Code nicht getestet. Dies ist eine Sparroutine, die funktioniert. Es wird an einer App getestet, die sich derzeit im App Store befindet.

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.") 
    } 
} 
Verwandte Themen