我有类“按钮”,它是 CCNode 的子类。由于按钮(如计算机按钮),不是 CCLabelBMFont 或 CCSprite,因此我将其子类化为 CCNode。此外,我还扩展了 CCLabelBMFont 与子“CCLabelCustom”,它有自己的一些奇特逻辑。这样,我将 CCLabelCustom *buttonLabel 和 CCSprite *buttonSprite 移动为“Button”的 iVar。我希望“Button”尽可能抽象,没有默认的 buttonLabel 或 buttonSprite。问题是,我如何去初始化 CCLabelCustom 和 CCSprite?CCLabelCustom 有一些带有四个以上参数的长初始化,并且可以分配其他属性。
// Rough Idea to help elaborate my classes
@interface Button : CCNode
@property (nonatomic, strong) CCLabelCustom *buttonLabel;
@property (nonatomic, strong) CCSprite *buttonSprite;
@end
// Rough Idea to help elaborate my classes
@interface CCLabelCustom : CCLabelBMFont
@property (nonatomic, strong) SomeProperty *someVar;
@property (nonatomic, strong) AnotherProperty *anotherVar;
-(void)fancyMethod;
-(void)initWithSomething:(Something*)something andAnother:(Another*)another alongWith:(Fun*)fun;
@end
有什么我不知道的架构吗?有什么方法可以让我在课堂外用两个 iVar 初始化“Button”吗?我不想要任何可以在“Button”类中定义的默认值。我想从外层做。先感谢您。