![](/img/trans.png)
[英]UIImagePickerController - how to save image to core data? (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目錄中的某個地方
您可以使用UIImageJPEGRepresentation
從UIImage
獲取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.