我有很多关系,例如一个学生有很多课程。
为什么在运行以下代码时_classes
没有新的Cls
对象?然而,当我关闭应用程序并重新打开它时。
作为后续问题,如何在添加新的课程后立即获得新的课程列表?
NSMutableSet* classes = [student mutableSetValueForKey:@"classes"];
NSManagedObject* cls = [NSEntityDescription insertNewObjectForEntityForName:@"Cls" inManagedObjectContext:context];
[cls setValue:name forKey:@"name"];
[student addClassesObject:cls];
NSError* err;
[context save:&err];
NSMutableSet* _classes = [student mutableSetValueForKey:@"classes"];
这就是我的addClassesObject:操作的样子(由XCode自动生成)
- (void)addClassesObject:(Cls*)cls
{
}
谢谢!
答案 0 :(得分:3)
您无法直接向对象添加对象。您需要使用Core Data生成的访问者或您自己的自定义访问者。查看.h文件,您应该看到
的内容-(void)addClsObject:(Cls *)theObject;
并且
-(void)addClsObjects:(NSSet *)set;
因此,对于您的特定情况,一旦有了Cls对象,就会执行以下操作:
[student addClassesObject:cls];
然后执行保存,您应该能够检索设置的类。仅供参考,调用此方法和relatd NSSet relatd方法也会为您设置反向关系。
祝你好运Ť