我收到一个运行时错误
运行时错误:
线程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”
我在做什么错了?
谢谢 马克