簡體   English   中英

如何在核心數據SWIFT上保存圖像

[英]How to save image on core data SWIFT

我想知道如何保存從核心數據上的照片的兩性得到的圖像。

我有一個imageView,當觸摸它時,我可以從圖庫中選擇一張照片,我的問題是我關閉該應用程序並重新打開該圖像時不存在。

如何保存圖像,以及當應用重新打開時,圖像會在imageview中繼續顯示

coredata是否是最佳選擇?

class V1Menino: UIViewController, UITextFieldDelegate, GADBannerViewDelegate, UINavigationControllerDelegate, UIImagePickerControllerDelegate,UIScrollViewDelegate {

@IBOutlet weak var sViewV1: UIScrollView!
@IBOutlet weak var imageV1: UIImageView!

override func viewDidLoad() {
    super.viewDidLoad()
    self.view.layoutIfNeeded()

    self.sViewV1.minimumZoomScale = 1.0
    self.sViewV1.maximumZoomScale = 6.0

    let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(imageTapped(tapGestureRecognizer:)))
    imageV1.isUserInteractionEnabled = true
    imageV1.addGestureRecognizer(tapGestureRecognizer)

}

func viewForZooming(in scrollView: UIScrollView) -> UIView? {
    return self.imageV1
}

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

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


    if let image = info[UIImagePickerControllerOriginalImage] as? UIImage
    {
        imageV1.image = image
    }
    self.dismiss(animated: true, completion: nil)
}

@objc func imageTapped(tapGestureRecognizer: UITapGestureRecognizer)
{
    //let tappedImage = tapGestureRecognizer.view as! UIImageView
    // sua acao
    let image = UIImagePickerController()
    image.delegate = self
    image.sourceType = UIImagePickerControllerSourceType.photoLibrary
    self.present(image,animated: true)
    {
        //depois disso ta completo
    }
}
}

不,核心數據不是您所需要的最佳選擇。 在處理關系方案時,核心數據很有用。
無論如何,將圖像直接保存在核心數據中(即使有可能)也不是做到這一點的最佳方法。 通常,您將映像保存在本地,並將其路徑保存在核心數據持久性存儲中。
做您想做的事情就足以在文檔目錄中創建一個目錄,並將圖像的副本保存在那里。
打開應用程序后,只需使用此路徑上的數據構建一個UIImage實例。

我不會將CoreData用於圖像數據。 那應該存儲在Documents目錄中的某個地方

您可以使用UIImageJPEGRepresentationUIImage獲取Data ,然后使用write(to:options:)保存它

您可以通過以下方式獲得Documents目錄: 如何快速找到NSDocumentDirectory?

我不知道您的應用程序有多復雜。 如果只需要存儲一張圖像,則在Documents目錄下創建一個子文件夾,並使用恆定的文件名。

如果您需要存儲一堆圖像(並跟蹤它們),則可以使用CoreData來存儲文件名(而不是圖像數據)。

本教程的功能類似於您想要的(但帶有PNG): https : //www.hackingwithswift.com/example-code/media/how-to-save-a-uiimage-to-a-file-using-uiimagepngrepresentation

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM