3

我有一对多的关系,例如一个学生有很多课。

为什么当我运行以下代码时_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
{

}

谢谢!

4

1 回答 1

3

您不能直接将对象添加到集合中。您需要使用 Core Data 生成的访问器或您自己的自定义访问器。查看您的 .h 文件,您应该会看到类似于以下内容的内容

-(void)addClsObject:(Cls *)theObject;

-(void)addClsObjects:(NSSet *)set;

因此,对于您的特定情况,一旦您拥有 Cls 对象,您将执行以下操作:

[student addClassesObject:cls];

然后执行你保存,你应该能够检索类集。仅供参考,调用此方法和 relatd NSSet relatd 方法也会为您设置反向关系。

祝你好运

于 2012-06-12T03:21:31.183 回答