【问题标题】:How can you make the picture stay there forever unless you change it? [duplicate]除非你改变它,否则你怎么能让图片永远留在那里? [复制]
【发布时间】:2016-12-15 15:28:07
【问题描述】:
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)
}

关闭应用程序并再次打开后,图像会消失。当我再次打开应用程序时,我怎样才能让它保持在那里。我知道如何处理带有NSUserDefaults 的文本,但你如何处理图像?

【问题讨论】:

  • 您可以将图像数据写入文档目录。
  • @TejaNandamuri 不要将图像保存在NSUserDefaults 中。将图像写入文件。如果有的话,您可以将保存文件的文件名存储在NSUserDefaults

标签: ios swift save nsuserdefaults


【解决方案1】:

您需要将其保存到 Documents 目录,如下所示:

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

感谢Hacking With Swift

【讨论】:

    【解决方案2】:

    editingInfo 字典告诉您所选图像的源 URL (UIImagePickerControllerReferenceURL)。保存该信息,以便您以后可以再次使用它来获取相同的图像。

    【讨论】:

    • 此解决方案不处理用户从照片库中删除图片的问题。最好将图像本地保存到应用程序,而不仅仅是其 URL。
    • @rmaddy 正如你所说,也不是用户默认值。 - 不过,我不认为我的解决方案是无效的。如果我们应该显示照片库中的图像,如果没有则不显示它可能是正确的做法。
    猜你喜欢
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 2021-02-27
    • 2013-06-14
    • 2015-04-05
    • 1970-01-01
    相关资源
    最近更新 更多