Objective c 实例化目标C中的任意类
我在Objective C中有一个NSMutableArray对象。我根据数据文件的内容填充它,其中包含每个元素应该是的类和一个参数列表。所有可能的类都从公共父类继承Objective c 实例化目标C中的任意类,objective-c,Objective C,我在Objective C中有一个NSMutableArray对象。我根据数据文件的内容填充它,其中包含每个元素应该是的类和一个参数列表。所有可能的类都从公共父类继承 是否有任何方法可以实例化数组的每个元素,而无需在大规模的if-else测试中硬编码每个可能的类?是的,我想memset()会有帮助是的,我想memset()会有帮助您当前在数据文件中存储类的名称以及对象的参数 因此,您可以使用NSClassFromString实例化该自定义类对象并初始化其状态: NSString *_myCust
是否有任何方法可以实例化数组的每个元素,而无需在大规模的if-else测试中硬编码每个可能的类?是的,我想memset()会有帮助是的,我想memset()会有帮助您当前在数据文件中存储类的名称以及对象的参数 因此,您可以使用
NSClassFromString
实例化该自定义类对象并初始化其状态:
NSString *_myCustomClass = // get custom class name from data file...
id _myCustomObject = [[NSClassFromString(_myCustomClass) alloc] init];
// set up _myCustomObject's state from data file's parameters...
[_myMutableArray addObject:_myCustomObject];
[_myCustomObject release];
您当前将类的名称以及对象的参数存储在数据文件中 因此,您可以使用
NSClassFromString
实例化该自定义类对象并初始化其状态:
NSString *_myCustomClass = // get custom class name from data file...
id _myCustomObject = [[NSClassFromString(_myCustomClass) alloc] init];
// set up _myCustomObject's state from data file's parameters...
[_myMutableArray addObject:_myCustomObject];
[_myCustomObject release];
如果您也能控制数据文件的编写,您可能会发现只使用标准的objective C(在其他语言中称为序列化)更容易。这是一种向文件中写入和读取对象的简单方法。如果您也能控制数据文件的写入,您可能会发现只使用标准的objective C(在其他语言中称为序列化)更容易。这是一种向文件中写入和读取对象的简单方法。+1点答案。值得一提的是,您如何获取特定属性的选择器(按名称)以设置其值?@Rob-如果属性是使用
@property
声明的,那么最简单的答案就是使用setValue:forKey:
。即使属性不是使用@property
声明的,您仍然可以使用setValue:forKey:
Key-Value编码早于Objective-C2.0的@property
声明,搜索适当命名的setter,然后直接进行ivar赋值。自定义init
方法如何?+1点答案。值得一提的是,您如何获取特定属性的选择器(按名称)以设置其值?@Rob-如果属性是使用@property
声明的,那么最简单的答案就是使用setValue:forKey:
。即使属性不是使用@property
声明的,您仍然可以使用setValue:forKey:
Key-Value编码早于Objective-C2.0的@property
声明,并在直接ivar赋值后搜索适当命名的setter。那么自定义init
方法呢?