创建对象时,我们使用语法
Item *xyz = [[Item alloc] init];
如果类的名称,即“Item”存储在核心数据数据库中,当然可以将其带入字符串变量......
如何实例化对象?
答案 0 :(得分:2)
将类转换为字符串:
NSString* className = NSStringFromClass([Item class]);
然后您可以存储className
。
走另一条路:
Class theClass = NSClassFromString(className);
id xyz = [[theClass alloc] init];
答案 1 :(得分:2)
您可以使用NSClassFromString(@"ClassName");
Class reqdClass =
id item = [[NSClassFromString(@"ClassName") alloc]init];
反过来说,你可以使用
NSString *stringClass = NSStringFromClass([Item class]);
设置以这种方式实例化的对象的属性:
@try
{
[item setValue:@"etc" forKey:@"property1"];
}
@catch (NSException *e)
{
if ([[e name] isEqualToString:NSUndefinedKeyException])
{
NSLog(@"property not recognized");
}
}