我正在创建一个初始化某些类的实例的类。这个类将用于初始化几个不同类型的类,这些类都是从一个公共超类继承而来的。目前我正在使用一个实例变量:
Class templateClass;
存储类类型。我收到编译器警告说模板类不支持方法。有没有办法抑制这些警告或指定模板类必须是某个类的子类?
另外,这是在objective-c中解决这个问题的理想方法吗?有没有不同的方法来指定我应该使用的类?
谢谢您的帮助!
编辑:我正在编写的课程旨在在随机选择的位置创建精灵,并使用一些变量来限制它们。这个类期望它重新定义的类有一个initWithX:(int)pos yVariance:(int)variance
方法。我希望这可以使用您提到的协议来定义。我将为我必须创建的每种类型的精灵制作多个 rezzing 类的实例。我希望能够发送 rezzing 类initWithTemplateClass:(Class)templateClass
来定义要创建的精灵的类型。我不确定这是否是解决此问题的正确方法,因为编译器发布该方法initWithX:(int)pos yVariance:(int)variance
不适用于模板类。我希望我处理这个问题的方式有问题。显示警告的代码是:
[self addChild:[[templateClass alloc] initWithX:positionOfChild
yVariance:(random()%(rowVarianceSize+1))]];