我有一些名为Word的NSManaged Objects,他们是自己的一套。预先填充的 单词对象列表及其相关属性。
我有一个名为WordSet的第二个NSManaged对象,它包含一个部分 Word对象列表。 (一对多)
我试图了解如何将WordSet连接到预先存在的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,我似乎无法访问。
对象WordSet有1个单词,反之亦然,但我似乎无法获得对象的句柄以添加关系。
我猜我在KVC的土地上做错了什么。 NSlog在那里有对象id,所以FWIG的任务是获取_wordArrayController.selectedObjects中的数据,获取所选对象的句柄,然后将该对象添加到WordSets实例,即:
[wordsetsObject addWordObject:wordObject];
这是怎么做的?
答案 0 :(得分:0)
NSLog
只会显示当前从数据库中提取的内容。 “关系错误”意味着尚未获取关于关系对象的信息。在需要时它会很方便。
如果您有对象的引用,并且您的关系设置正确,您可以通过常规方式建立关系。
word.wordSet = set;
或更复杂的是,使用Core Data生成的访问器方法:
[wordSet addWordObject:word];
然后保存并检查它是否与
一起使用NSLog(@"The wordSet of the word “%@“ is “%@“.",
word.name, word.wordSet.name);
要获取参考,只需使用所选列表中唯一的项目:
Word *word = _selectedItems.count ? _selectedItems[0] : nil;