将图像保存在核心数据中时出错

时间:2020-11-09 11:48:33

标签: swift image core-data unrecognized-selector

我收到一个运行时错误

运行时错误:

线程1:“-[[Attribute setImageD:]:无法识别的选择器已发送到实例0x6000034aabc0”

运行我的代码时。分配字段时,请参阅* * *

在某些情况下,这是从我的项目开始的,所以我将代码的条带化到最小,但仍然收到此错误,

核心数据定义


extension Attribute {

@nonobjc public class func fetchRequest() -> NSFetchRequest<Attribute> {
    return NSFetchRequest<Attribute>(entityName: "Attribute")
}

@NSManaged public var name: String
@NSManaged public var order: Int32
@NSManaged public var item: Item
@NSManaged public var imageD: Data?

}


在调用代码中,我将图像ND转换为数据,并输入到保存的例程中

let image = UIImage(named: "BartSimpson");
let imagedata = image?.jpegData(compressionQuality: 1)
        
= Attribute.createPhotoAttributeFor(item: item,
                                              imageData: imagedata!)

        CoreData.stack.save()

保存方法在键入时使用想象的图像来设置成像场时会出现运行错误。请参阅***

class func createPhotoAttributeFor(item: Item, imageData: Data) -> Attribute {
    
    let attribute = Attribute.newAttribute()

    attribute.name = "image"
    attribute.imageD = imageData            // attribute value

此处* *运行时错误:线程1:“-[[Attribute setImageD:]:无法识别的选择器已发送到实例0x6000034aabc0”

    attribute.order = 3                     // 3 = image
    attribute.item = item                   // parent record

    return attribute
}

根据请求...它将创建新的属性对象,初始化字段(哦,但不是imageD?)并保存...

class func createAttributeFor(项目:项目,名称:字符串,顺序:整数?)->属性{

    let attribute = Attribute.newAttribute()

    attribute.name = name

    attribute.order = Int32(order ?? 0)

    attribute.item = item
    //
    CoreData.stack.save()

    return attribute
}

在这里查看我自己的条目使我感到奇怪...似乎存在3个可能的错误点

这是获取图像数据表示的正确方法吗? let image = UIImage(named:“ BartSimpson”);让imagedata = image?.jpegData(compressionQuality:1)

这是将数据传递给函数的正确方法吗? = Attribute.createPhotoAttributeFor(item:item,imageData:imagedata!)

其中

class func createPhotoAttributeFor(item:Item,imageData:Data)->属性{

这是引用数据的正确方法吗? attribute.imageD = imageData //属性值

我在错误运行时线程1:“-[Attribute setImageD:]:无法识别的选择器发送到实例0x6000034aabc0”

我在做什么错了?

谢谢 马克

0 个答案:

没有答案
相关问题