これの専門用語はわかりません。ObjectiveCで、次のような変数を宣言できるかどうか疑問に思っています。
NSClassFromString(aClassName) *var;
また
[NSClassFromString(aClassName) class] *var;
どうやら、上記の2つは正しくありません。私が欲しいのは、変数を動的に宣言することです。ありがとう。
これの専門用語はわかりません。ObjectiveCで、次のような変数を宣言できるかどうか疑問に思っています。
NSClassFromString(aClassName) *var;
また
[NSClassFromString(aClassName) class] *var;
どうやら、上記の2つは正しくありません。私が欲しいのは、変数を動的に宣言することです。ありがとう。
タイプのivarをid
作成してから、動的に型付けする必要があります。たとえば、動的に入力する場合NSString
は、次のように実行できます。
id ivar;
Class myClass = NSClassFromString(@"NSString");
ivar = [[myClass alloc] initWithString:@"abc"];
として宣言var
してから、次のid
ようにインスタンス化する必要があります。
var = [[NSClassFromString(aClassName) alloc] init];
型を宣言する唯一のポイントはコンパイル時の型チェックであるため、処理できるオブジェクトにメッセージをスローするだけであれば問題はありません。
id
それらは動的に型付けされた変数の型ですか。変数が特定のクラスに準拠しているかどうかを確認する必要がある場合は、を使用できます-isKindOfClass:
。
クラスが次のようなタイプであるかどうかを動的にテストできます[var isKinkdOfClass:NSClassFromString(aClassName)]