gpt4 book ai didi

iphone - 在运行时将 id 类型的对象转换为未知类型

转载 作者:行者123 更新时间:2023-12-03 21:19:15 24 4
gpt4 key购买 nike

我有一个方法,它将我的 sqlite 数据库中的实体名称作为字符串,我正在尝试简化该方法以使用尽可能少的重复代码。

这里我有一个实体作为 id,我试图将其设置为所需的对象类型,以便调用插入行。

问题是当我调用 NSEntityDescription 实体时仍然属于类 id

  id entity;

if ([entityName isEqualToString:@"yadda yadda"]) {

entity = [EntityYadda class];
}
else if ([entityName isEqualToString:@"blah blah"]) {

entity = [EntityBlah class];
}
else if ([entityName isEqualToString:@"Foobar"]) {

entity = [EntityFoobar class];
}

for (int x=0; x<[data count]; x++) {

entity = [NSEntityDescription insertNewObjectForEntityForName:entityName inManagedObjectContext:context];

我哪里出错了?

谢谢

最佳答案

I have 7 different entities all with identical fields so I am trying to dynamically assign the required entity class to 'entity' so in my loop I will have only one line using NSEntityDescription an property settings.

好吧,您已经想到“为什么不使用一个具有表示类型的标志字段的实体?”,这是一个很好的问题,我强烈建议您采用该路线。

如果由于某种原因不能,您可以在协议(protocol)中声明相同的字段,然后声明这 7 个实体都遵循相同的协议(protocol)。在您的方法中,您的类型声明将为(而不是 id ): NSManagedObject<MyCustomProtocol> * .

关于iphone - 在运行时将 id 类型的对象转换为未知类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6548494/

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