1

私は問題があります。

「mapController」と呼ばれる NSObjectController があり、オブジェクトの作成時にいくつかのデフォルトを設定したいと考えています。ドキュメントで提案されているように、ドキュメントのwindowControllerDidLoadNibメソッド内でこれを行います。しかし…</p>

if (![mapController content]){   // No map defined yet.
    [mapController add: self];   // This should create the instance.

    NSLog(@"%@",[mapController content]); // Gives NULL.

私は試した:

    BOOL ok = [mapController fetchWithRequest:nil merge:NO error:nil];
    NSLog(@"%@",[mapController content]); // Gives NULL.

mapController の内容は Core Data の「スクラッチ パッド」にありますが、アクセスできません。その属性の 1 つを次のように設定する必要があります。

    [[mapController content] setValue:[matrix colorReference] forKey:@"mapData"];

これによりエラーは発生せず、ファイルは変更済みとしてマークされますが、値をテストします。

    NSLog(@"%@",[mapController content]); // Gives NULL.

コントローラーのコンテンツが本当にここにあるのはいつですか?画面に何かが表示されますが、実際には何ですか?ドキュメントを読んでも役に立たない…</p>

4

2 に答える 2

1

OK、ドキュメントで答えを見つけました:

add:新しいオブジェクトを作成し、受信者のコンテンツ オブジェクトとして設定します。

討論

適切なエンティティ (entityName で指定) またはクラス (objectClass で指定) の新しいオブジェクトを作成し (newObject を参照)、addObject: を使用して受信者のコンテンツ オブジェクトとして設定します。

特別な考慮事項

Mac OS X v10.4 以降、このメソッドの結果は、エラー表示メカニズムがシートとしてフィードバックを提供できるように、ランループの次の繰り返しまで延期されます。

それが理由です

[[mapController content] setValue:[matrix colorReference] forKey:@"mapData"];

アプリの他の場所で呼び出されたときに正常に機能しました。それは数回の繰り返しでした…</p>

そうですね…この記事を読めば、睡眠時間の節約になるかもしれません。

よろしく、

バーナード

于 2012-07-07T23:10:00.860 に答える
0

あなたのmapControllerではないと思います。あなたのNSLogだと思います。これを試して:

NSLog(@"%@", mapController);

%f などの他のフォーマッタを使用できるように、CGColorRef の float 値など、コンテンツから単純なデータを取得することも試してください。

これをテストしたはずですが、宣言されていない識別子であるため、NSObjectController のインスタンスを作成できないようです。どのフレームワークで定義されていますか? 何か #import する必要がありましたか?

于 2012-07-20T09:09:37.440 に答える