iPhones SDK:使用核心数据设置关系属性对象?

Posted

技术标签:

【中文标题】iPhones SDK:使用核心数据设置关系属性对象?【英文标题】:iPhones SDK: Setting a relationship property object using core data? 【发布时间】:2010-03-13 02:18:18 【问题描述】:

我在我的应用中使用核心数据。我有两个相关的实体:EntityA 和 EntityB。 EntityA 与 EntityB 具有“关系”类型的属性。此外,这两个实体都是定义的类(不是默认的 NSManagedObject)。我正在向我的数据中插入一个新对象,如下所示:

EntityA *newEntityA = [NSEntityDescription insertNewObjectForEntityForName:@"EntityA" inManagedObjectContext:self.managedObjectContext];

newEntityA.name = @"some name";
newEntityA.entityB.name = @"some other name";

问题是 entityB.name 为空。即使我在分配值后立即添加 NSLog() 语句,它也是空的。当 EntityB 是 EntityA 的属性时,设置我的 EntityB 的“名称”属性的正确方法是什么?

【问题讨论】:

【参考方案1】:

你还需要先创建一个EntityB对象:

EntityA *newEntityA = [NSEntityDescription insertNewObjectForEntityForName:@"EntityA" inManagedObjectContext:self.managedObjectContext];

newEntityA.name = @"some name";

EntityB *newEntityB = [NSEntityDescription insertNewObjectForEntityForName:@"EntityB" inManagedObjectContext:self.managedObjectContext];

newEntityA.entityB = newEntityB;
newEntityA.entityB.name = @"some other name";

【讨论】:

谢谢。有时,我们逃避的是显而易见的事情。

以上是关于iPhones SDK:使用核心数据设置关系属性对象?的主要内容,如果未能解决你的问题,请参考以下文章

iPhone核心数据得到孙子

核心数据独特属性

iphone核心数据:三层Entity关系混乱

iphone, 以多对多关系保存数据, 核心数据

iPhone核心数据递归关系

iPhone SDK:带有核心数据表示例代码的 SearchDisplayController?