核心数据一对一关系

时间:2012-04-07 12:24:49

标签: iphone objective-c core-data

在我的应用程序中,我使用CoreData,我有两个实体。 VenueInfo和ContactInfo。

在应用程序中,您可以添加场地,每个场地都有ContactInfo。所以我在我的模型中建立了一对一的关系。

所以我想,我可以简单地做以下事情:

[venue.contact setValue:textField.text forKey:email];

所以你要设置属于场地的联系对象的email属性。但是这不起作用。

是否可能因为联系对象尚不存在?

1 个答案:

答案 0 :(得分:4)

你写的这行不会那样。我假设联系人是您在xCodeModel中的Venue实体中的关系名称。

 [venue.contact setValue:textField.text forKey:email]; // can't write this way..

假设您的ContactInfo实体有两个字段:phoneemail,这样就可以了。         和VenueInfo实体有两个字段:name

  VenueInfo *venueInfo=[NSEntityDescription   insertNewObjectForEntityForName:@"VenueInfo" inManagedObjectContext:self.managedObjectContext];
  vanueInfo.name=txtVenueName.text;           // venue name entry


  ContactInfo *contactInfo=[NSEntityDescription   insertNewObjectForEntityForName:@"ContactInfo" inManagedObjectContext:self.managedObjectContext];

  contactInfo.phone=txtPhone.text;
  contactInfo.email=txtEmail.text;
  contactInfo.venue=venueInfo;  // I assume venue is the relationship name you give in ContactInfo entity towards Venue entity.

我们在此处所做的是,我们仅将电话和电子邮件详细信息保存到ContactInfo实体,然后我们将其与当前选定的VenueInfo相关联,以访问我们在ContactInfo实体中声明的关系{ {1}}。

这可能很令人困惑,所以我建议您按照一些教程来了解一些关于核心数据关系的基础知识。的 core data relationships tutorials