1

なぜこれが機能しないのか、私は完全に困惑しています。新しいNSTreeNodeを子ノードの可変配列に挿入しようとしています。コードは次のとおりです。

NSTreeNode *newNode = [[NSTreeNode alloc] init];
NSMutableArray *children = [anExistingParentTreeNode mutableChildNodes];
[children addObject:newNode];

実行すると、あらゆる種類のエラーが発生します。

  • -[NSCFSet initWithObjects:count:]:オブジェクトにnilオブジェクトを挿入しようとします[0]
  • -[NSTreeNode _tearDownObserving]:認識されないセレクターがインスタンス0x2000bff40に送信されました
  • 重大なアプリケーションエラー。Core Data変更処理中に例外がキャッチされました:-[NSTreeNode _tearDownObserving]:認識されないセレクターがuserInfo(null)でインスタンス0x2000bff40に送信されました

エラーはKVOのものを扱っているようです。mutableChildNodesを使用してこのようなエラーが発生した人はいますか?どんな助けでも大歓迎です。

注:基盤となるNSTreeControllerは、管理対象オブジェクトコンテキストを介してコアデータにバインドされます。

4

2 に答える 2

1

newNodeオブジェクトを正しく初期化していない可能性がありますか?

initクラスに定義されている唯一のメソッドは次のとおりです。

- (id)initWithRepresentedObject:(id)modelObject

を使用する場合はinit、から継承されたデフォルトの実装を使用するだけですNSObject

通常、クラスには1つ以上の指定された初期化子がありますが、の場合、NSTreeNodeそれがドキュメントで指定されていることを確認できません。ただし、クラスに定義されている初期化子は1つだけであり、後の段階で表現されたオブジェクトを設定するsetterメソッドがないため、これがクラスinitWithRepresentedObject:の指定された初期化子であると結論付けます。

イニシャライザーについて:http://developer.apple.com/library/ios/#documentation/general/conceptual/DevPedia-CocoaCore/MultipleInitializers.html

于 2011-11-30T09:12:19.553 に答える
-2

元の質問に対する私の最後のコメントを参照してください。

于 2011-12-03T01:41:53.960 に答える