2013-07-23 3 views
0

У меня есть некоторые объекты NSManaged, называемые Word, которые являются их собственным набором. Предварительно заполненный список объектов слов и связанных с ними свойств.Добавить существующую ссылку на объект для другого объекта

У меня есть второй объект NSManaged, называемый WordSets, который должен содержать неполный список объектов Word Object . (один для многих)

Я пытаюсь понять, как связать WordSets с ранее существовавшими объектами Word.

У меня есть tableView, где я могу выбрать объект слова. У меня есть кнопка добавить, который вызывает выход к следующему коду ...

NSInteger row = [_wordsTableInEditWindow selectedRow]; 
NSLog(@"Add Selected: %ld", (long) row); 
[_wordArrayController setSelectionIndex:row]; // set selected row 
NSLog(@"Word? %@", _wordArrayController.selectedObjects); 

NSLog, после выбора второго пункта просмотра таблицы и вызвать выход:

2013-07-23 00:50:26.074 Words Admin[19540:303] Add Selected: 1 
2013-07-23 00:50:26.075 Words Admin[19540:303] Word? (
"<Word: 0x1006cc370> (entity: Word; id: 0x10068a830 
<x-coredata://912FFFF6-E367-4787-8ECE-C279EC0B94B8/Word/p106> ; data: 
{\n audioFile = \"bird.caf\";\n context = \"BBBBird is the word!\";\n  
wordSetRel = \"<relationship fault: 0x1006e0850 'wordSetRel'>\";\n})" 
) 

Что я не действительно получить здесь, что я только хочу/нужно добавить ссылку на объект.

У меня есть выбор таблицы и, по-видимому, скелет объекта, который, как представляется, каким-то образом интерпретируется в NSArray, к которому я не могу получить доступ.

Object WordSets имеет 1-много со словом, и наоборот, но я не могу получить дескриптор объекта, чтобы добавить отношения.

Я предполагаю, что я делаю что-то не так на земле КВК или что-то в этом роде. NSLog имеет идентификатор объекта прямо там, так FWIG задача состоит в том, чтобы принимать данные в _wordArrayController.selectedObjects, получить ручку на выбранном объекте, а затем добавить этот объект в WordSets инстанции, а именно:

[wordsetsObject addWordObject:wordObject]; 

Как это сделано ???

ответ

0

NSLog покажет только то, что в настоящее время выбрано из базы данных. «Ошибка связи» означает просто, что информация об объекте отношения еще не была получена. Это будет удобно, когда это необходимо.

Если у вас есть ссылка на ваши объекты, и ваши отношения настроены правильно, вы можете просто установить отношения обычным способом.

word.wordSet = set; 

или, более сложным, с использованием основных данных генерируются методы доступа:

[wordSet addWordObject:word]; 

Вы затем сохранить и проверить, если он работал с

NSLog(@"The wordSet of the word “%@“ is “%@“.", 
    word.name, word.wordSet.name); 

Чтобы получить ссылку, просто использовать единственного элемента в списке:

Word *word = _selectedItems.count ? _selectedItems[0] : nil; 
+0

Спасибо, что ответили !! «Если у вас есть ссылка на ваши объекты» - все дело в получении ссылки на объект! Это то, что я пытаюсь выяснить ... Как я могу извлечь ссылку на объект, учитывая структуру данных из _wordArrayController.selectedObjects? –

+0

Итак, объект в вашем журнале правильный? Затем вы получите его с помощью 'selectedObjects [0]'. – Mundi

+0

Правда это! Исходная проблема решена! Бонусный раунд! Итак, теперь объект word связан с объектом wordet.Следующая задача: как получить только связанные элементы связи! Запрос на выбор с помощью предиката? –

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