Inheritance CoreData:如何动态处理继承?
e、 在我的CoreData项目中,我有三个班:个人、学生和老师。学生和老师都有一个人作为家长 现在,我想做一些类似的事情:Inheritance CoreData:如何动态处理继承?,inheritance,core-data,Inheritance,Core Data,e、 在我的CoreData项目中,我有三个班:个人、学生和老师。学生和老师都有一个人作为家长 现在,我想做一些类似的事情: Person *person; if (createPupil) { person = [[Pupil alloc] init]; ... } else { person = [[Teacher alloc] init]; ... } [self.managedObjectContext save:&error]; 但它似乎总
Person *person;
if (createPupil) {
person = [[Pupil alloc] init];
...
} else {
person = [[Teacher alloc] init];
...
}
[self.managedObjectContext save:&error];
但它似乎总是保存到人表。当我去接学生或老师时,他们都是空的。是否有可能使这一点变得动态
非常感谢
Stefan您的if语句已经引入了动态元素。我会这样做:
if (createPupil) {
Pupil *person = [NSEntityDescription
insertNewObjectForEntityForName:"Pupil"
inManagedObjectContext:self.managedObjectContext];
// ... configure
}
else {
Teacher *person = [NSEntityDescription
insertNewObjectForEntityForName:"Teacher"
inManagedObjectContext:self.managedObjectContext];
// ... configure
}
[self.managedObjectContext save:&error];
另外,请查看苹果在insertNewObjectForEntityForName:inManagedObjectContext:
中的评论
该方法在MacOSXV10.4上特别有用,因为您可以使用它
创建新的托管对象而不必知道使用的类
代表实体。这在早期阶段尤其有益
类和类名不稳定时的开发生命周期