0

独自のセットである、Word と呼ばれる NSManaged オブジェクトがいくつかあります。単語オブジェクトとそれに関連付けられたプロパティの事前設定されたリスト。

Word オブジェクトの部分的なリストを含む、WordSets という 2 番目の NSManaged オブジェクトがあります。(1 対多)

WordSet を既存の Word オブジェクトにリンクする方法を理解しようとしています。

word オブジェクトを選択できる tableView があります。次のコードにアウトレットを呼び出す追加ボタンがあります...

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

2 番目のテーブル ビュー アイテムを選択し、アウトレットを呼び出した後の 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 に解釈されたように見えるオブジェクトのスケルトンの両方を持っており、アクセスできないようです。

オブジェクトの WordSets には 1 対多の単語があり、その逆もありますが、関係を追加するためにオブジェクトのハンドルを取得できないようです。

私は、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 に答える