2016-08-09 270 views
1
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) { 

    print("Image Uploaded") 

    self.dismissViewControllerAnimated(true, completion: nil) 

    filterimage.image = image 
} 

@IBAction func importImage(sender: AnyObject) { 
    let image = UIImagePickerController() 
    image.delegate = self 
    image.sourceType = UIImagePickerControllerSourceType.Camera 

    image.allowsEditing = false 

    self.presentViewController(image, animated: true, completion: nil) 
} 

Nachdem Sie die App geschlossen haben und Sie sie erneut öffnen, verschwindet das Bild. Wie kann ich es schaffen, wenn ich die App wieder öffne das Bild bleibt dort. Ich weiß, wie man es mit Text mit NSUserDefaults macht, aber wie machst du es mit einem Bild?Wie können Sie das Bild für immer dort bleiben lassen, wenn Sie es nicht ändern?

+1

Sie können Bilddaten zu einem Dokumenten-Verzeichnis schreiben. –

+1

@TejaNandamuri Speichern Sie das Bild nicht in 'NSUserDefaults'. Schreiben Sie das Bild als Datei. Wenn überhaupt, können Sie den Dateinamen der Sicherungsdatei unter 'NSUserDefaults' speichern. – rmaddy

Antwort

0

Das editingInfo Wörterbuch teilt Ihnen die Quellen-URL des ausgewählten Bildes mit (UIImagePickerControllerReferenceURL). Speichern Sie diese Informationen, damit Sie sie später erneut verwenden können, um dasselbe Bild abzurufen.

+0

Diese Lösung behandelt nicht, dass der Benutzer das Bild aus der Fotobibliothek löscht. Es wäre besser, das Bild lokal in der App zu speichern, nicht nur die URL. – rmaddy

+0

@rmaddy Und wie Sie sagen, auch nicht in Benutzereinstellungen. - Ich glaube nicht, dass meine Lösung ungültig ist. Wenn wir ein Bild aus der Fotobibliothek anzeigen sollen, ist es möglicherweise das Richtige, es nicht anzuzeigen, wenn es nicht vorhanden ist. – matt

1

Sie wollen es auf das Verzeichnis Dokumente zu speichern, wie so:

func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) { 
    print("Image Uploaded") 
    saveImageToDirectory(image) 
    self.dismissViewControllerAnimated(true, completion: nil) 
} 

func saveImageToDirectory(image : UIImage) { 
    if let data = UIImageJPEGRepresentation(image, 1.0) { 
     let filename = getDocumentsDirectory().stringByAppendingPathComponent("myCameraImage.png") 
     data.writeToFile(filename, atomically: true) 
    } 
} 

func getDocumentsDirectory() -> NSString { 
    let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) 
    let documentsDirectory = paths[0] 
    return documentsDirectory 
} 

//To retrieve the image... 
func getImage() { 
    let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString 
    let getImagePath = paths.stringByAppendingPathComponent("myCameraImage.jpg") 
    let image = UIImage(contentsOfFile: getImagePath) 
    print(image) 
} 

Mit Kredit Hacking With Swift