我的脚步:
如果.init(context: NSManagedObjectContext)
let newString = "test == \(entity.id.intValue)"在步骤2之后,实体的id值时间变为0的问题。
我进行了调试,并有两种类型的输出:
<Entity: 0x60000023def0> (entity: Entity; id: 0x600002777d40 <x-coredata:///UserEntity/tC5203E3F-0F4A-4937-B44A-45CD578382AA10>; data: <fault>)<Entity: 0x6000003c9f40> (entity: Entity; id: 0xab5e4a90b6dee4ba <x-coredata://3EC29A9F-A81A-49EC-B4BE-23004ECF10FF/UserEntity/p88>; data: { ...has data }在第一种情况下,isFault是true,其次是false。
我不明白为什么保存上下文会使实体出错?
发布于 2022-10-12 19:58:31
我假设bug可能在您的代码中某个地方,而您的问题中没有显示。这就是为什么我要给出函数来获取实体中的值。如果我发布的代码没有帮助,那么可能是时间问题。
static let persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "YOUR_APPs_NAME")
container.loadPersistentStores { (_, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
}
static var context: NSManagedObjectContext { return persistentContainer.viewContext }
func loadUserIsVerified() -> Id {
var id : Id!
let context = CoreDataStack.persistentContainer.viewContext
let fetchRequest: NSFetchRequest< Id > = Id.fetchRequest()
do {
let ids = try context.fetch(fetchRequest)
if(sessions.count > 0) {
id = ids.first
}
} catch {
print("Something happened while trying to retrieve tasks...")
}
return id
}https://stackoverflow.com/questions/74047064
复制相似问题