0

我有一些名为 Word 的 NSManaged 对象,它们是它们自己的集合。单词对象及其相关属性的预填充列表。

我有第二个名为 WordSets 的 NSManaged 对象,它包含部分 Word 对象列表。(一对多)

我试图了解如何将 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-many with word,反之亦然,但我似乎无法获得对象的句柄以添加关系。

我猜我在 KVC 领域做错了什么。NSlog 有对象 ID,所以 FWIG 的任务是获取 _wordArrayController.selectedObjects 中的数据,获取所选对象的句柄,然后将该对象添加到 WordSets 实例,即:

[wordsetsObject addWordObject:wordObject];

这是怎么做到的???

4

1 回答 1

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;
于 2013-07-23T16:29:23.927 回答