使用动态数量的对象自定义TableView单元格创建

时间:2011-12-01 10:20:59

标签: iphone objective-c ios uitableview

亲爱的程序员,您好

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

提前谢谢。

2 个答案:

答案 0 :(得分:1)

这听起来好像可能会变成一场噩梦,但为了解决你的问题,你必须在创建你的时候使用id或最低常见超类(例如UIView)任意对象:

id objectName = [[NSClassFromString....

编译器无法以您尝试的方式动态投射。它必须在运行时完成。

答案 1 :(得分:0)

使用id等常用类型:

id objectName = [[NSClassFromString(objectType) alloc] init]; 

您也可以使用UIView,NSObject。取决于你的目的