1

在我的应用程序中,我使用 CoreData,我有两个实体。地点信息和联系信息。

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

所以我想,我可以简单地执行以下操作:

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

因此,您需要设置属于该场所的联系人对象的电子邮件属性。但是,这不起作用。

是否有可能是因为联系人对象还不存在?

4

1 回答 1

5

你写的那行不会那样工作。我假设联系人是您在 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的访问我们在ContactInfoEntity 中声明的关系相关联VenueInfo

这可能很令人困惑,因此我建议您遵循一些教程,这些教程将使您了解一些有关核心数据关系的基础知识。

于 2012-04-07T12:37:12.627 回答