我有一个我希望实例化的CoreData对象(暂时使用),但我不想保存或插入到上下文中以实现持久性。
我想要创建的对象的类定义是:
import Foundation
import CoreData
@objc(USubmission)
class USubmission: NSManagedObject {
@NSManaged var subid: NSNumber
我创建了这样的对象(暂时使用但不能保留)
let entitiyDesc = NSEntityDescription()
entitiyDesc.name = "USubmission"
entitiyDesc.managedObjectClassName = "USubmission"
let sub = USubmission.init(entity: entitiyDesc, insertIntoManagedObjectContext: nil)
然而,当我设置一个临时对象的ivars时,我收到以下错误:
sub.subid = 0
错误:
[USubmission setSubid:]:无法识别的选择器发送到实例
我检查了对象,它看起来像是正确的对象,而不是NSManagedObject对象。
为什么在上下文为nil(临时对象)时与上下文有关时会出现此错误?
答案 0 :(得分:2)
您必须从ManagedObjectContext创建实体描述:
let entitiyDesc = NSEntityDescription.entityForName("USubmission", inManagedObjectContext: **yourContext**)
如果您不想保存使用该实体创建的对象,请将 nil 传递给 insertIntoManagedObjectContext ,就像您已经这样做:
let sub = USubmission.init(entity: entitiyDesc, insertIntoManagedObjectContext: nil)