我有课程项目。我需要创建将与复选框列表一起使用的类CheckboxProject,它将具有“已检查”属性,我将检查/取消选中项目。
所以,我使用继承并做到了。但是dataSource数组包含Project类。如何将此数组转换为CheckboxProject类?
@interface Project : NSObject
@property (nonatomic, copy) NSString *name;
@end
@interface CheckboxProject : Project
@property (nonatomic) BOOL checked;
@end
我有Project的dataSourse数组。我需要将它转换为CheckboxProject数组,然后我需要能够将检查更改为YES / NO。
我需要从Project
的数组中获取CheckboxProject数组答案 0 :(得分:0)
obj-c中的数组不是安全的类型,所以你可以把你想要的东西放在里面。
您可以在运行时检查班级类型
id obj = [array objectAtIndex:index];
if([obj isKindOfClass:[CheckmarkProject class]]) {
// do something with the checkmark
} else if ... // the other type of class {
}
但无论如何,做这样的事情是糟糕的做法。 (我更喜欢在混合情况下访问基类变量)