如何通过名称从NSSet获取对象

时间:2014-04-02 17:37:47

标签: ios objective-c getter nsset

我有简单的核心数据模型。我有学生,有父母 - NSSet。当我有这个代码时:

if(!student.parents.count == 0){
    Parent *mother = [NSEntityDescription insertNewObjectForEntityForName:@"Parent" inManagedObjectContext:cdh.context];
    [student addParentsObject:mother];
}

如何从NSSet(studen.parents)获取对象“mother”?谢谢。

如何编辑对象母亲?例如,母亲有属性名称(mother.name)。如何编辑最简单的属性?我认为学生不仅仅是对象母亲。例如,我知道,我想编辑ID为“XXX”的学生的母亲。我该怎么做?

1 个答案:

答案 0 :(得分:2)

问题(如果是一个问题)是你没有做任何事情来表明特定的父母 是“母亲”。父母集合中没有“对象mother”。无论如何,“母亲”这个词在任何有意义的意义上都不是 一个“名字”。

当您在上面的代码中添加父级时,您使用了名为“mother”的变量,但这只是一个临时引用;它没有指定关于此变量指向的对象的任何内容,现在添加为Parent的对象(并且该变量在任何情况下都会在两行烟雾中消失)。如果变量名称为scrumdiddlyumptious

,则不会产生任何影响
Parent * scrumdiddlyumptious = [NSEntityDescription insertNewObjectForEntityForName:@"Parent" inManagedObjectContext:cdh.context];
[student addParentsObject: scrumdiddlyumptious];

效果将完全与您的代码相同。

最终,这是您的模型的问题。你的模型与你未来的愿望有关。如果知道某个特定父母是“母亲”对您来说很重要,那么在父实体中有一个属性,你可以设置它来指示。现在您可以根据该属性进行提取。