2012-04-07 5 views
1

В моем приложении Im использует CoreData, и у меня есть два объекта. VenueInfo и ContactInfo.Отношения «один-на-один» CoreData

В приложении вы можете добавить места, в каждом из которых есть ContactInfo. Поэтому в моей модели я настраивал отношения «один к одному».

Так что я бы себе представить, я мог бы просто сделать следующее:

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

Так как и вы бы установить атрибут электронной почты контактного объекта, который принадлежит к месту. Однако это не работает, никаких идей?

Возможно ли это, потому что контактный объект еще не существует? Надеюсь, вы можете помочь, спасибо.

+0

Пожалуйста, разместите снимок экрана .xcodeModel ... –

+0

Я обновил свой ответ. Пожалуйста, посмотрите .. –

ответ

4

Строка, которую вы написали, не будет работать таким образом. Я предполагаю, что контакт - это имя отношения, которое у вас есть в объекте Venue в xCodeModel.

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

Пусть ваш ContactInfo объект имеет два поля: phone, email так таким образом, вы можете пойти. и 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 Entity для VenueInfo.

Возможно, это довольно запутанно, поэтому я порекомендую вам следовать нескольким учебным пособиям, которые дадут вам представление об основах основных отношений данных. core data relationships tutorials

+0

изменен контактInfo.venue = selectedVenue; на контактInfo.venue = место встречи; –

+0

Хорошо спасибо, это имеет смысл, однако, конечно, это работает только в первый раз, когда вы даете контактную информацию о месте проведения мероприятия? Поскольку в следующий раз, когда вы вернетесь, чтобы отредактировать это, вы снова создаете новый контактный объект, конечно, вам нужно получить доступ к существующей информации, используя что-то вроде event.contact? –

+0

Извините, но не получите вас? Вы ссылались на какие-либо ссылочные или примерные коды для основных данных? –

Смежные вопросы