gpt4 book ai didi

ios - 将实体属性数据保存到核心数据后如何保留实体属性数据

转载 作者:行者123 更新时间:2023-11-30 11:08:44 26 4
gpt4 key购买 nike

我正在创建一个 UserEntity 实体:

    let userEntity = UserEntity(context: managedContext)

userEntity.username = user.username
userEntity.name = user.name
userEntity.personCode = user.personCode
userEntity.personalData = XMLRegistrationData.toEntity(userPersonalData: user.registrations.registrationData)

并将其保存在此属性“loggedUser”上:

            let loggedUser = XMLUserData.toEntity(user: xmlUserData)
print(loggedUser) // first print

do {
try self.context.save()

print(loggedUser) // second print
} catch {
...
}

第一个打印结果:

<UserEntity: 0x282b07a70> (entity: UserEntity; id: 0x28081c460 <x-coredata:///UserEntity/t78B51567-8104-4232-9BEA-062FBCB3CEEC3> ; data: {
activeSession = nil;
name = "FOO";
personCode = 000;
personalData = "0x280828020 <x-coredata:///UserPersonalDataEntity/t78B51567-8104-4232-9BEA-062FBCB3CEEC4>";
username = 001;
})

但是第二个打印结果是:

<UserEntity: 0x282b07a70> (entity: UserEntity; id: 0xd000000000840002 <x-coredata://C833ECD4-5D54-48C3-9860-B2E0781D08EC/UserEntity/p33> ; data: <fault>)

保存到核心数据后,UserEntity 属性为 nil。该对象保存在核心数据上,我可以使用 context.fetch 获取它,但loggingUser 已更改。

为什么会出现这种情况?如何在保存后将数据保留在 LoggedUser 上,而无需在保存后从核心数据中获取数据?

最佳答案

这不是nil,而是fault 。数据还在那里。您可以通过打印 loggedUser.username

来证明这一点

Faulting reduces your application’s memory usage by keeping placeholder objects (faults) in the persistent store.

关于ios - 将实体属性数据保存到核心数据后如何保留实体属性数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52416221/

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