核心数据 - 通过关系获取价值

时间:2012-08-31 23:18:45

标签: core-data one-to-many

假设我有一张名为“Coffee Mug”的桌子,并与许多类型的“咖啡”有关系。

我可以访问Coffee Mug记录及其所有细节,但当我尝试通过关系获取咖啡类型时,我只得到指针值。

我正在尝试创建一个像这样的咖啡值数组:

self.coffeeTypeArray = [[NSMutableArray alloc] initWithArray:[coffeeMug.coffee allObjects]];
NSLog(@"Filled Array with: %i records", [self.coffeeTypeArray count]);
NSLog(@"Array contents: %@", self.coffeeTypeArray);

我的日志显示该数组填充了5个对象。但是不是我正在寻找的字符串,而是为每条记录得到这样的字符:

"<CoffeeTypes: 0x7f460b0> (entity: Coffees; id: 0x7f46100 <x-coredata:///Coffees/t113639D7-6BA1-4FDB-9739-7781EE6460134> ; data: {\n    mug = \"0x7f40370 <x-coredata:///coffeeMugs/t113639D7-6BA1-4FDB-9739-7781EE6460132>\";\n    coffee = Columbian;\n})"

我知道答案必须简单,但我的搜索条件已经用完了。

1 个答案:

答案 0 :(得分:1)

您在数组中看到的是“Coffees”实体的托管对象。该实体具有属性coffee,这似乎是您正在寻找的。

以下内容适用于打印数组中所有对象的coffee属性:

for (CoffeeTypes *theCoffee in self.coffeeTypeArray) {
    NSLog(@"%@", theCoffee.coffee);
}

注意:也许您应该重新考虑实体和关系的命名。你的“咖啡”实体代表(据我所知)一种咖啡,所以“咖啡”(没有复数)将是一个更好的名字。另一方面,从“CoffeeMugs”到“Coffees”的一对多关系被称为“咖啡”。在这里,“咖啡”(带有复数形式)将是这种关系的更好名称。