Ios 如何在每个孩子身上施展不同的超级变量';s
当前状态Ios 如何在每个孩子身上施展不同的超级变量';s,ios,nsmanagedobject,superclass,Ios,Nsmanagedobject,Superclass,当前状态 我有一个名为“GeneralCard”的超类,它是许多“CardsController”中的超级类 从“GeneralCard”继承的每个类都有一个不同的UIViewController子类,该子类包含不同的NSManagedObjects子类- (白卡控制器-->白卡, 红色卡片控制器-->红色卡片…。 对于所有ManagedObject,我有许多实际上相同的函数。所以我想把它们放在普通卡片上 问题 我创建了一个“通用”NSManagedObject,名为: NSManagedOb
我有一个名为“GeneralCard”的超类,它是许多“CardsController”中的超级类 从“GeneralCard”继承的每个类都有一个不同的UIViewController子类,该子类包含不同的NSManagedObjects子类- (白卡控制器-->白卡, 红色卡片控制器-->红色卡片…。 对于所有ManagedObject,我有许多实际上相同的函数。所以我想把它们放在普通卡片上 问题 我创建了一个“通用”NSManagedObject,名为:
NSManagedObject *currentCard.
现在,在我尝试投射的每个视图控制器上:
self.currentCard = (WhiteCard*)self.currentCard;
因此,我将能够使用“白卡”属性
当我不断地犯错误时,这些都起作用了,比如-
…卡片视图
控制器/WhiteCardViewController.m:226:
错误:请求中的成员“信函”
不是结构或联盟的东西
因为字母在NSManagedObject中没有结构化,但在他的WhiteCard子类中有
回答问题
*如何从super共享相同的变量,但在每个vew控制器上强制转换不同的变量*
非常感谢
shani我将为返回typecast对象的每个子类编写一个访问器方法。比如:
- (WhiteCard *)myTypeCurrentCard {
return (WhiteCard *)self.currentCard;
}
- (GenericCard *)myTypeCurrentCard {
return (GenericCard *)self.currentCard;
}
父类将具有如下内容:
- (WhiteCard *)myTypeCurrentCard {
return (WhiteCard *)self.currentCard;
}
- (GenericCard *)myTypeCurrentCard {
return (GenericCard *)self.currentCard;
}
在使用这些方法的每个控制器类中,消息
[self myTypeCurrentCard]
将返回一个转换为当前类型的对象。此方法不能保证生成的对象实际上就是该类型的对象,因此必须小心发送非白卡
对象的白卡特定消息,以确保不会发生运行时错误。谢谢,我已经凭直觉这样做了。现在我知道它的名字了,而且它是正确的。谢谢