Ios 是否可以从字符串声明变量类型?

Ios 是否可以从字符串声明变量类型?,ios,objective-c,Ios,Objective C,我不知道这方面的技术术语。我想知道在目标C中,是否可以声明这样一个变量: NSClassFromString(aClassName) *var; 或 显然,上述两种说法是不正确的。我想要的是动态声明一个变量。 谢谢。您必须将var声明为id,然后将其实例化为: var = [[NSClassFromString(aClassName) alloc] init]; 声明类型的唯一一点是编译时类型检查,因此只要您只向它可以处理的对象抛出消息,就不会有问题。id是动态类型变量的类型。如果需要检查变

我不知道这方面的技术术语。我想知道在目标C中,是否可以声明这样一个变量:

NSClassFromString(aClassName) *var;

显然,上述两种说法是不正确的。我想要的是动态声明一个变量。
谢谢。

您必须将
var
声明为
id
,然后将其实例化为:

var = [[NSClassFromString(aClassName) alloc] init];

声明类型的唯一一点是编译时类型检查,因此只要您只向它可以处理的对象抛出消息,就不会有问题。

id
是动态类型变量的类型。如果需要检查变量是否符合特定类,可以使用
-isKindOfClass:


您可以使用
[var isKinkdOfClass:NSClassFromString(aClassName)]
动态测试类是否为某种类型。您应该创建
id
类型的ivar,然后将其动态键入。例如,如果要动态键入它
NSString
,可以执行以下操作:

id ivar;
Class myClass = NSClassFromString(@"NSString");

ivar = [[myClass alloc] initWithString:@"abc"];
id ivar;
Class myClass = NSClassFromString(@"NSString");

ivar = [[myClass alloc] initWithString:@"abc"];