对象类型之间的To-Many关系

时间:2012-04-09 15:13:03

标签: objective-c ios core-data entity-relationship one-to-many

我有实体Route和RoutePoint(都是NSManagedObject的子类),它们之间存在多对多的关系:一个Route可以有更多的RoutePoints。 Route有一个称为坐标的(有序)关系,RoutePoint有一个叫做route的关系(设置为反向)。

我在记录时发现了这一点:

Relationship 'coordinates' fault on managed object (0xb666e80) <Route: 0xb666e80> ...

Route.h:

@property (nonatomic, retain) NSOrderedSet * coordinates;

RoutePoint.h:

@property (nonatomic, retain) Route * route;

似乎设置不正确,这样做的正确方法是什么?

修改

让我们稍微扩展一下这个数据库模型。我有一个名为ActivityData的实体,它可以有(所以可选)一个Route。我在ActivityData和Route之间建立了一对一的关系,我也将这种关系设置为反向关系。

这些代码行导致错误(无法识别的选择器发送到实例):

ActivityData *a = [dict objectForKey:@"data"];
NSLog(@"route dist: %@", a.route.distance);

然而,这可以正常工作:

ActivityData *a = [dict objectForKey:@"data"];
NSLog(@"act: %@", a);
NSLog(@"route dist: %@", a.route.distance);

很奇怪呃?

0 个答案:

没有答案