異なるクラス (正確には 9 つ) のインスタンスのコレクションがあり、すべて同じメソッドとプロパティを持ちますが、それぞれが特定のタスクを実行します。
これらの異なるオブジェクトをいつでも切り替えられるようにしたいと考えています。いくつかのオブジェクトのみが使用される場合もあれば、すべてが使用される場合もあれば、1 つだけが使用される場合もあります。
理想的には、これらのオブジェクトのいずれかのインスタンスを指す単一のプロパティが必要です。私はこのようなことをしてみました:
@property (nonatomic, strong) id * currentObj;
...
currentObj=[[ClassType3 alloc] init];
(ClassType3
は 9 つの異なるクラスの 1 つにすぎません。この例では、からClassType1
に移動しますClassType9
)
しかし、それは機能しません。次の 2 つの警告が表示されます。
Property with 'retain (or strong)' attribute must be of object type.
Pointer to non-const type 'id' with no explicit ownership.
私の質問は、このようなことを達成できるか、または使用する必要がある場合に備えて各クラスのインスタンスを作成する必要があるかということです。