您好亲爱的程序员,

我需要使用以下方法创建自定义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....

编译器无法按照您尝试的方式动态地进行强制转换。它必须在运行时完成。

07-27 13:30