2

私はCoreDataを学んでおり、現時点ではInterface BuilderとXCodeデータモデルを使用しています(Aaron Hillegass Cocoaの本の例に従ってください)。

私はMVCアプリケーションとコアデータをセットアップし、Interface Builder内で動作しています(手書きのコードはまだありません)。オブジェクトを追加および削除したり、データを編集したり、オブジェクト間の関係を決定したりするために、さまざまなアレイコントローラー、ビュー、ボタンを設定しました。

ただし、私のオブジェクトモデルは厳密に階層的な親子(および孫)であり、各関係は1対多です。したがって、子(または孫)を追加するときに、メインのtableViewで現在選択されている親オブジェクトを新しい子オブジェクトの親として自動的に割り当てたいと思います。

これはInterfaceBuilderで可能ですか、それとも自分のメソッドのコーディングを開始する必要があるポイントですか?

私が取ろうとしている次のステップへのポインタ、またはそれを自分で理解する方法は非常にありがたいです。私は少し立ち往生していて、関連するチュートリアルやリファレンスを見つけることができません。

おそらく、ドキュメントウィンドウについて説明すると役立つでしょう。追加/削除ボタン付きの2つのtableViewがあります。右側のtableViewには、左側のtableViewで選択された親オブジェクトの子オブジェクトのNSSetが表示されます。右側の追加ボタンで新しいオブジェクトを追加し、それを選択した親オブジェクトの子にして、右側のtableViewに表示されるようにします。

現時点では、子オブジェクトのarrayControllerで確認できるメソッドはadd:とremove:だけですが、もちろん、新しいオブジェクトを現在選択されている親に接続しません。親オブジェクト、つまりaddChildObjectに独自の(IBAction)メソッドを追加する必要がありますか?または、親子関係に基づいてCoreData内に子を自動的に追加する組み込みの方法はありますか?

4

1 に答える 1

0

問題が解決しました。私がやろうとしていることを正確に説明しているチュートリアルを見つけました(少し古いですが):

https://developer.apple.com/cocoa/coredatatutorial/index.html

そして、慎重にすべてのステップを慎重に行った後、私はすべてを正しく行ったことに気付きました.1つのバインディングを見逃していました.子配列コントローラーのコンテンツセットのみを設定し、そのマネージドオブジェクトコンテキストを(ファイルの所有者に)設定していませんでした. それが、私の追加ボタンが新しい子オブジェクトを追加しなかった唯一の理由です! 些細な間違いですが、自信がない場合は、単純なエラーを探すのではなく、アプローチ全体に疑問を投げかけます。これを読まなければならなかった人には申し訳ありませんが、チュートリアルへのリンクが誰かを助けるかもしれません.

于 2012-10-21T02:38:19.783 に答える