У меня проблемы с установкой отношений в CoreData.Это один ко многим, за столом может быть много людей, но только один человек может сидеть за одним столом.
Мое приложение основано на примере Apples CoreDataBooks здесь .
Этоне обрабатывает отношения, хотяВы видите «EditingViewController.m» в примере проекта, у меня это тоже есть, там, где пользователь редактирует и сохраняет изменение выбранного атрибута объекта CoreData.
Итак, скажем, они идут и выбираютотредактировать атрибут name
моего лица.Они получают текстовое поле, в котором вводят имя, а затем нажимают кнопку «Сохранить». Готово.
Теперь моя личность имеет отношение к моей табличной сущности, но я не могу правильно ее сохранить, и вполне вероятно, чтоЯ не до конца понимаю, как это работает.Допустим, они выбирают для редактирования таблицы этого человека, они получают UIPickerView, который выводит список таблиц, отлично, я дошел до этого, я использовал запрос на выборку, чтобы получить объекты таблицы и перечислить их.
Обычно устанавливая стандартный атрибут, такая строка будет вызываться в моем коде:
[editedObject setValue:textField.text forKey:editedFieldKey];
Однако на этот раз я использую отношение, поэтому это победило 'не работает, верно?
Итак, теперь мои отношения настроены, я пробую это вместо вышеописанного:
[tableObject addGuestObject:(Person *)editedObject];
Итак, из запроса на выборку я заполнил свойс помощью выбора я выбираю выбранную таблицу и получаю этот объект, tableObject
.Затем, как показал пример с CoreDataBooks, editedObject
был передан в это представление, и это тот человек, о котором мы говорим, который мы редактируем.
Так вот, мне нравится неправильно его понимать.Конечно, как и в последней строке кода, мы просто берем существующий объект таблицы (который был выбран) и затем добавляем к нему существующий гостевой объект?
Но это дает мне эту ошибку и вылетает:
'NSObjectInaccessibleException', reason: 'CoreData could not fulfill a fault for '0x145640 <x-coredata://2FAD62C1-382A-4398-A4CA-02B4B41DC9A5/Table/p2>''
Не совсем уверен, что делать, чтобы исправить это.