特定のクラスのインスタンスを初期化するクラスを作成しています。このクラスは、すべて共通のスーパークラスからサブクラス化されたいくつかの異なるタイプのクラスを初期化するために使用されます。現在、インスタンス変数を使用しています。
Class templateClass;
クラスタイプを保存します。メソッドがtemplateClassでサポートされていないというコンパイラの警告が表示されます。これらの警告を抑制したり、テンプレートクラスが特定のクラスのサブクラスでなければならないことを指定したりする方法はありますか?
また、これはObjective-cでこれを実行するための理想的な方法ですか?使用するクラスを指定する別の方法はありますか?
助けてくれてありがとう!
編集:私が書いているクラスは、ランダムに選択された場所にスプライトを作成し、それらを制限するためのいくつかの変数を使用するように設計されています。このクラスは、rezzesするクラスにinitWithX:(int)pos yVariance:(int)variance
メソッドがあることを期待しています。これは、あなたが言及したプロトコルを使用して定義できると思います。作成する必要のあるスプライトのタイプごとに、rezzingクラスの複数のインスタンスを作成します。initWithTemplateClass:(Class)templateClass
作成するスプライトのタイプを定義するためにrezzingクラスを送信できるようにしたいと思います。これが正しい方法であるかどうかはわかりませんが、コンパイラーは、このメソッドinitWithX:(int)pos yVariance:(int)variance
がtemplateClassで使用できないと投稿しているためです。私はこれについて私が行っている方法に問題があると思います。警告を表示しているコードは次のとおりです。
[self addChild:[[templateClass alloc] initWithX:positionOfChild
yVariance:(random()%(rowVarianceSize+1))]];