亲爱的程序员,您好
我需要使用以下方法创建自定义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)];
提前谢谢。
答案 0 :(得分:1)
这听起来好像可能会变成一场噩梦,但为了解决你的问题,你必须在创建你的时候使用id
或最低常见超类(例如UIView
)任意对象:
id objectName = [[NSClassFromString....
编译器无法以您尝试的方式动态投射。它必须在运行时完成。
答案 1 :(得分:0)
使用id
等常用类型:
id objectName = [[NSClassFromString(objectType) alloc] init];
您也可以使用UIView,NSObject。取决于你的目的