gpt4 book ai didi

iphone - Core Data 将父类(super class)实例转换为子类实例?

转载 作者:行者123 更新时间:2023-12-03 19:36:40 25 4
gpt4 key购买 nike

以编程方式将 NSManagedObject 子类 (User) 实例转换为其子类 (AccountUser) 实例的最佳方法是什么?

设置

AccountUser 继承自 User :NSManagedObject

当我第一次注册或登录应用程序时,我成为AccountUser。然后,我下载所有 friend 并将它们存储为 User 对象。

UserAccountUser 都有属性 firstNamelastName 等。AccountUser 有一些额外的东西,比如 accessToken

问题

我的 friend 约翰登录我的设备。由于他是我的 friend ,因此他已被存储为用户。但现在,我想将他转换为 AccountUser。以编程方式执行此操作的最佳方法是什么?我有很多属性和关系需要保留,因此从 User 对象创建一个新的 AccountUser 对象,然后删除原始 User 对象是一个有很多事情要做。如果我只是创建一个 AccountUser 而不删除 User,事情就会变得困惑。例如。当我通过 ID 获取 User 时,我得到两个对象:一个是 AccountUser,另一个是 User

最佳答案

一种方法是简单地创建一个新的 AccountUser 对象并将相关字段从现有 User 对象复制到其中。然后适本地处理旧的 User 对象——删除它,保存它,任何有意义的事情。为 AccountUser 提供一个采用 User 实例的初始值设定项是有意义的,例如 -initWithUser:

另一个(可能更好)选项是为所有用户使用单个类(用户)。如果需要为某些用户(当前为 AccountUsers)存储其他信息,请创建一个新的 Account 类并将 Account 实例与需要它的用户相关联。因此,代表您和您的 friend John 的 User 对象都将具有关联的 Account 对象,而所有其他用户则不会。当您的其他 friend 之一登录您的手机时,您可以为该人创建一个新的帐户对象,并将其与他们现有的用户对象关联。

关于iphone - Core Data 将父类(super class)实例转换为子类实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8577561/

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