可以有一个Variable Class对象声明

时间:2012-08-06 17:23:46

标签: xcode class declaration tableviewcell

这是我的例子:

UITableView *cell = [[MyCustomClass alloc] init];

有没有办法做到这一点,我可以改变clas" MyCustomClass",就像有这样的方法:

-(NSObject*)newMethod:(int)intNumber{
 classVariable = someClass depending on intNumber
 UITableView *cell [[<<<classVariable>>> alloc] init];
 return cell;
}

我想要这个方法,所以我可以创建正确的自定义单元格,并在我的下一个实现中将它用作全局方法,这是我使用的代码,我在stackoverflow中的其他问题中找到(用于加载自定义单元格)来自xibs):

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:stringIdentifier];

if (cell == nil) {
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:nibName owner:self options:nil];
    for (id currentObject in nib) {
        if ([currentObject isKindOfClass:[UITableViewCell class]]) {
            cell = (MyClassCell*) currentObject;
            break;
        }
    }
    cell = (MyClassCell *)[nib objectAtIndex:0];
}

我的目标是有一个方法,我发送上面所需的所有信息,包括tableViw,stringidentifier,nibName和MyClassCell&lt; - 这就是整个问题

其实我的朋友也想知道如何解决这个问题,以便在他的实施中使用,我们将非常感谢有关此事的任何线索,提前谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用Class获取课程的class

Class myclass = [MYClass class];

您现在可以将myclass作为变量传递,并且可以在需要Class的地方使用它:

id myinstance = [[myclass alloc] init];

答案 1 :(得分:0)

您可以在NSArray中放置类名甚至类,并使用索引:

NSArray *classes = [NSArray arrayWithObjects:[ClassOne class], [ClassTwo class], [C

assThree class],Nil];

id instance = [[(Class)[classes objectAtIndex:anIndex] alloc] init];

如果您希望在运行时动态构造/使用类信息,可以使用NSClassFromString()函数:

id anObject = [[NSClassFromString(@"FooBar") alloc] init];