gpt4 book ai didi

ios - 在 CoreData 之外使用自动生成的模型文件对象

转载 作者:行者123 更新时间:2023-11-29 01:28:18 25 4
gpt4 key购买 nike

我有一个名为 MessageDetailStore 的 CoreData 实体,用于保存传入消息。由于消息可以在不同的地方接收,我有一个名为 -insertMessage:txt: 的通用方法,调用它来处理将消息插入队列(它还执行其他操作,例如检查重复项) 、更新相关表格等)。最初,我的函数参数为 NSDictionary 类型,每个键/值对应于 MessageDetailStore 实体中的一个条目。这有效。

我决定通过使 type = 自动生成的类的方法的输入参数对应于 MessageDetailStore 来获得一些类型安全和其他保护。代码如下。

看起来这不起作用,因为 [[alloc] init] 不会生成对象,我需要使用 -initWithEntity:insertIntoManagedObjectContext:。但使用后者将导致一个新实体被添加到对象图中。但我希望只有在进行各种检查后才能完成此操作。有没有办法在 CoreData 之外创建“自动生成”类的实例?

     MessageDetailTable *messageToStoreFromPush =[[MessageDetailTable alloc] init] ;
messageToStoreFromPush.isMedia=FALSE ;
messageToStoreFromPush.msgContent=dict[@"msg"]
messageToStoreFromPush.sendingUserID=dict[@"sendingUser"] ;
messageToStoreFromPush.seqNumber=[NSNumber numberWithInt:[dict[@"seqNum"] intValue]] ;

[self insertBcastMessage:messageToStoreFromPush] ;

最佳答案

您不能使用 init,因为它不是 NSManagedObject 的指定初始化器。但是关于 initWithEntity:insertIntoManagedObjectContext: 的事情是第二个参数允许为 nil。如果这样做,您将获得一个尚未插入到上下文中的新实例。稍后,如果您的检查通过,您可以在保存更改之前使用 insertObject: 插入它。

关于ios - 在 CoreData 之外使用自动生成的模型文件对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33761635/

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