Swift Core Data 图片存储与读取Demo
最后更新于:2022-04-01 12:36:24
# Swift Core Data 图片存储与读取Demo
实体的模型定义:
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-18_569ca44d7bb0a.jpg)
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-18_569ca44d8bc95.jpg)
实体的class定义:
~~~
@objc(ImageEntity)
class ImageEntity: NSManagedObject {
@NSManaged var imageData: NSData
}
~~~
存储:
~~~
@IBAction func saveImageToCoreData() {
let delegate = UIApplication.sharedApplication().delegate as AppDelegate
let context = delegate.managedObjectContext
let imageData = UIImagePNGRepresentation(UIImage(named: "image"))
let imageEntity = NSEntityDescription.entityForName("ImageEntity", inManagedObjectContext: context!)
let image = ImageEntity(entity: imageEntity!, insertIntoManagedObjectContext: context!)
image.imageData = imageData
var error: NSError?
if context!.save(&error) == false {
println("failed: \(error!.localizedDescription)")
}
}
~~~
读取:
~~~
@IBAction func loadImageFromCoreData() {
let delegate = UIApplication.sharedApplication().delegate as AppDelegate
let context = delegate.managedObjectContext
let request = NSFetchRequest(entityName: "ImageEntity")
var error: NSError?
let imageEntities = context?.executeFetchRequest(request, error: &error)
let imageEntity = imageEntities?.first! as ImageEntity
self.imageView.image = UIImage(data: imageEntity.imageData)
}
~~~
## [Demo地址](https://github.com/zhangao0086/CoreDataSaveImageDemo)
';