gpt4 book ai didi

ios - 当上下文为 nil 时,Swift Temp CoreData 对象无法设置 ivars

转载 作者:搜寻专家 更新时间:2023-11-01 07:23:52 27 4
gpt4 key购买 nike

我有一个 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:]: unrecognized selector sent to instance

我检查了对象,它看起来像是正确的对象,而不是 NSManagedObject 对象。

为什么当上下文为 nil(临时对象)而不是存在上下文时会出现此错误?

最佳答案

您必须从您的 ManagedObjectContext 创建一个实体描述:

let entitiyDesc = NSEntityDescription.entityForName("USubmission", inManagedObjectContext: **yourContext**)

如果您不想保存使用实体创建的对象,那么将 nil 传递给 insertIntoManagedObjectContext,就像您已经这样做的那样:

let sub = USubmission.init(entity: entitiyDesc, insertIntoManagedObjectContext: nil)

关于ios - 当上下文为 nil 时,Swift Temp CoreData 对象无法设置 ivars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37223307/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com