新建Person类
person的子类 Student
Teacher
今天做数据库封装时想到的,因为查询出的结果都继承自NSManagerObject,但是他的子类属性又不一定一样,所以我就想我在在查询之后能不能判断他是那个子类并且按照子类的属性进行赋值,所以首先我要数组存的对象的类进行判断
测试如下:(把主要代码贡献如下,其他文件自己建议下吧,很简单)
NSMutableArray * array = [NSMutableArray
array];
NSMutableArray * array2 = [NSMutableArray
array];
for (int i =
0; i< 5; i++) {
Student * stu1 = [[Student
alloc]init];
stu1.name =[NSString
stringWithFormat:@"jack%i",i];
[array
addObject:stu1];
Teacher * teacher = [[Teacher
alloc]init];
teacher.name = [NSString
stringWithFormat:@"limei%i",i];
[array2
addObject:teacher];
}
for (Person * p
in array) {
NSLog(@"%@------",p.class);
}
for (Person * p
in array2) {
NSLog(@"%@------",p.class);
}
//
从打印结果可以看出虽然我用他的父类接收,.class后仍能显示子类名称,这样从数组中遍历的对象我可以用.class获取他是哪个子类,并判断如何给他赋值
// 例如
for (Person * p
in array2) {
if (p.class == [Student
class]) {
NSLog(@"是学生");
}else {
NSLog(@"不是学生");
}
}
if ([array[0]
class] == [Student
class]) {
NSLog(@"是学生");
}else{
NSLog(@"不是学生,是%@",[array[0]
class]);
}
ios CoreData 用父类的实例对象person接收存有子类的数组,打印person.class ,结果是子类类名?还是父类类名(已解决)ios CoreData 用父类的实例对象person接收存有子类的数组,打印person.class ,结果是子类类名?还是父类类名(已解决)ios CoreData
用父类的实例对象person接收存有子类的数组,打印person.class ,结果是子类类名?还是父类类名(已解决)ios CoreData 用父类的实例对象person接收存有子类的数组,打印person.class ,结果是子类类名?还是父类类名(已解决)