Swi*_*ter 1 core-data ios swift
我正在尝试存储图像core data.
我的core data属性文件要求图像位于NSData:
import Foundation
import CoreData
extension Item {
@nonobjc public class func fetchRequest() -> NSFetchRequest<TaskItem> {
return NSFetchRequest<TaskItem>(entityName: "Item");
}
@NSManaged public var itemImage: NSData?
}
Run Code Online (Sandbox Code Playgroud)
但是当我试图保存到core data使用时:
@IBAction func saveBtnTapped(_ sender: AnyObject) {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let item = Item(context: context)
let imageData: NSData = UIImageJPEGRepresentation(taskImage.image!, 0.2)
item.itemImage = imageData
(UIApplication.shared.delegate as! AppDelegate).saveContext()
}
navigationController?.popViewController(animated: true)
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Cannot convert value of type 'Data?' to specified type 'NSData'
Run Code Online (Sandbox Code Playgroud)
我以为我做得对,但它不适合我.有人可以告诉我如何解决它吗?
提前致谢.
UIImageJPEGRepresentation返回一个Data?值.这可桥接至NSData?与as.然后使用可选的绑定(if let)来安全地打开可选的:
if let imageData = UIImageJPEGRepresentation(...) as NSData? {
// Now `imageData` is a `NSData` object.
item.itemImage = imageData
} else {
// Conversion to JPEG data failed.
}
Run Code Online (Sandbox Code Playgroud)
您还应该参考"核心数据编程指南"中的"二进制大数据对象(BLOB)"部分,了解将二进制数据直接存储在数据库中的含义,以及可能的替代方案.
| 归档时间: |
|
| 查看次数: |
925 次 |
| 最近记录: |