您好亲爱的程序员,
我需要使用以下方法创建自定义tableviewcell:
@interface CustomTableCell : UITableViewCell {
}
@implementation CustomTableCell
-(void)setObjectWithType:(NSString *)objectType atPlace:(CGRect) placeOfObject
{
class className=NSClassFromString(objectType);
className *objectName = [[NSClassFromString(objectType) alloc] init];// Giving error
}
请通过传递如下参数来解决此问题以创建任何类型的对象:
CustomTableCell *cell=[[CustomTableCell alloc] init];
[cell setObjectWithType:@"UILabel" atPlace:CGRectMake(0, 0, 100, 30)];
提前致谢。
最佳答案
听起来这可能会变成一场噩梦,但要解决您眼前的问题,在创建任意对象时,您必须使用id
或最低的 public super class (例如UIView
):
id objectName = [[NSClassFromString....
编译器无法按照您尝试的方式动态地进行强制转换。它必须在运行时完成。