-1

私はこのガイドに従いました。

13点目で何を言っているのかよくわからなかったのですが、インスペクターのペインを開いたところですが、どの属性を設定すればいいのかわかりません。ただし、コードをコピーして適切なクラスに貼り付けました。しかし、Objective-Cで空のウィンドウを持つ通常のプログラムを作成するときと同じように、三角形の描画がない通常のウィンドウが表示されます。

編集:

問題はウィンドウの初期化だと思ったので、drawRectメソッドを開始するためにawakeFromNibメソッドを作成しました。

- (void) awakeFromNib
{
    NSRect rect=NSMakeRect(100.0, 100.0, 100.0, 100.0);
    [self drawRect: rect];
}

しかし、drawRectの最初の命令で、EXC_BAD_ACCESS例外が発生します

glClearColor(0, 0, 0, 0);

たぶん、ウィンドウが正しく初期化されていませんか?

4

1 に答える 1

1

OpenGLが現在のコンテキストがないときに現在のコンテキストの状態を変更しようとするため(-drawRect:最初に現在のコンテキストを設定せずに送信したため)、おそらくセグフォールトが発生しています。

自分を送ってはいけません-drawRect:代わりに、-setNeedsDisplayCocoaを使用して現在のコンテキストを設定し、送信-drawRect:してください。

- (void)awakeFromNib {
  self.needsDisplay = YES;
}
于 2012-04-09T18:00:49.803 に答える