IOS:使用替换

时间:2015-09-01 18:12:26

标签: ios objective-c iphone class inheritance

我有课程项目。我需要创建将与复选框列表一起使用的类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数组

1 个答案:

答案 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 {
}

但无论如何,做这样的事情是糟糕的做法。 (我更喜欢在混合情况下访问基类变量)