Je crée une classe qui initialise des instances de certaines classes. Cette classe sera utilisée pour initialiser quelques différents types de classes toutes sous-classées d'une super classe commune. Actuellement j'utilise une variable d'instance:Puis-je spécifier une exigence de superclasse spécifique pour une variable de type de classe?
Class templateClass;
pour stocker le type de classe. Je reçois des avertissements du compilateur disant que les méthodes ne sont pas supportées par templateClass. Existe-t-il un moyen de supprimer ces avertissements ou de spécifier que la classe template doit être une sous-classe d'une certaine classe?
Aussi, est-ce le moyen idéal pour faire cela à l'objectif-c? Existe-t-il une manière différente de spécifier la classe à utiliser que je devrais utiliser?
Merci pour votre aide!
Editer: La classe que j'écris est conçue pour créer des sprites dans des emplacements choisis au hasard avec quelques variables pour les limiter. Cette classe s'attend à ce que la classe qu'elle utilise soit dotée d'une méthode initWithX:(int)pos yVariance:(int)variance
. Je pense que cela peut être défini en utilisant les protocoles que vous avez mentionnés. Je vais créer plusieurs instances de la classe rezzing pour chaque type de sprite que je dois créer. Je veux être en mesure d'envoyer la classe de rezzing initWithTemplateClass:(Class)templateClass
pour définir le type de sprite à créer. Je ne suis pas sûr si c'est la bonne façon de procéder, car le compilateur signale que la méthode initWithX:(int)pos yVariance:(int)variance
n'est pas disponible pour templateClass. Je m'attends à un problème dans la façon dont j'y vais. Le code qui montre l'avertissement est:
[self addChild:[[templateClass alloc] initWithX:positionOfChild
yVariance:(random()%(rowVarianceSize+1))]];
Peut-être que vous devriez poster du code qui montre comment vous utilisez 'templateClass' qui génère les avertissements. – imaginaryboy
vient d'ajouter le code – dhatch387