如何在每个孩子的内部变量中不同地投射一个超变量?

| 当前状态 我有一个名为\“ GeneralCard \”的超类,它是许多\“ CardsControllers \”的超类。 继承自\“ GeneralCard \”的每个类都有一个UIViewController的不同子类,其中包含不同的NSManagedObjects子类- (WhiteCardsController-> WhiteCard, RedCardsController-> RedCard ...)。 我有很多对于所有ManagedObjects都相同的功能。所以我想将它们归入普通卡。 问题 我创建了一个\“ General \” NSManagedObject,名为:
 NSManagedObject *currentCard.
现在,我在每个View控制器上尝试投射:
self.currentCard = (WhiteCard*)self.currentCard;
这样我就可以使用\“ WhiteCard \”属性。 当我不断收到类似这样的错误消息时,   ...卡视图   控制器/WhiteCardViewController.m:226:   错误:请求成员“字母”在   不是结构或联合的东西 由于字母不是在NSManagedObject中构造的,而是在他的WhiteCard子类中构造的。 对这个问题 *我如何从超级共享相同的变量,但在每个vew控制器上将其强制转换为不同的变量?* 非常感谢 沙尼     
已邀请:
        我将为每个返回类型转换对象的子类编写一个访问器方法。就像是:
- (WhiteCard *)myTypeCurrentCard {
    return (WhiteCard *)self.currentCard;
}
父类将具有以下内容:
- (GenericCard *)myTypeCurrentCard {
    return (GenericCard *)self.currentCard;
}
在具有这些方法的每个控制器类中,消息“ 4”将返回一个强制转换为当前类型的对象。该方法不能保证最终的对象实际上就是该类型的对象,因此必须注意确保通过发送非“ 5”个对象白卡特定的消息来确保不会发生运行时错误。     

要回复问题请先登录注册