1

我有一个关于核心数据和关系规则的问题。

我有一个拥有多个用户的实体。用户与称为事件的实体具有可选的一对多关系。在我的应用程序启动时,我创建了一个用户(我自己)以及其他用户并将它们保存在 CD 中。im的用户对象也保存在 NSUserDefaults 中。

所以,现在我创建了一个事件,并希望将它分配给我保存在核心数据中的用户对象实体。我想使用我保存在 userdefaults 中的用户对象并将事件添加到其中,如下所示:

Event *event = (Event *)[NSEntityDescription insertNewObjectForEntityForName:@"Event" inManagedObjectContext:managedObjectContext];
//property setters
event.createdBy = userObjectFromNSUserDefaults;

这是正确的方法吗?是否会将事件分配给该特定用户(在该示例中为我)?

另一个问题是:

我的事件类(nsmanagedobject 的子类)还有一个 NSSet 属性,其中包含添加/删除该事件的受邀用户或接受用户的添加和删除方法。我如何正确使用这些方法?

任何帮助都会获得 cookie :=)

4

1 回答 1

0

关于第一个问题 - 是的,这就是在 Core Data 中建立关系的方式。您只需将特定对象(NSManagmentObject,是吗?)分配给属性。

如果是一对多的话,另一种方式就是做

[userObjectFromNSUserDefaults addEvent:event];

再次,如果它的管理对象。

我在这里看到的唯一问题是您将其保存在 nsuserdefualts 中。这意味着当你从那里加载它时,它并没有附加到你的 MOC 上,我猜它不会工作。您需要在 nsuserdefaults 中保存一些 id 或其他内容,而不是对象本身。当应用程序加载时,使用该 ID 从数据库中获取该对象。

于 2013-04-25T10:55:38.060 回答