0

私のサブクラス os NSTreeController は、メソッドが呼び出されたnewObjectときにのみ実行され、決して実行されないことに気付きましたadd:addChild:

このスレッドがまったく同じ問題を議論しているのを見つけました。この場合、ユーザーはコア データ モードでツリー コントローラーを使用していますが、私は特定のクラス (オブジェクト モード) を使用するように設定しています。

メソッドaddChild:を使用しない理由は何ですか?newObject

newObjectが呼び出された場合add:、それが機能しない理由はわかりませんaddChild:。Apple の SourceView デモ アプリでこの動作を確認したのは、OutlineController をサブクラスに置き換え、ボタンをadd:andに接続し、呼び出しaddChild:のみにしたことです。これは本当に本当に奇妙な振る舞いだと思います。add:newObject

4

2 に答える 2

0

addChild: newObject メソッドを使用しない理由は何でしょうか?

それは文脈に依存します。NSTreeControllerが Plain Old Objects と通信している場合は、 のコンテキストで実行されます。これ、既知の が与えられているため、ツリー コントローラは、すべてを適切な場所に配置するために必要なすべての情報を持っているためです。-newObject-addChild-objectClass

NSTreeControllerが と通信している場合、NSManagedObjectContext,それは実行されません-newObject。これは、-newObject実装がセレクションとの関係を確立するのに十分なコンテキストを持たないため-addChild:です。

于 2013-12-08T19:10:21.927 に答える