2

オーディオ ファイルではなく楽譜を読み込む音楽教育アプリを作成しており、アニメーション グラフィック画面を表示する必要があります。ファイルへのアクセスを簡単にするドキュメント ベースのアプリを作成し、ファイルの読み取りと解析を行い、すべての曲データを Obj-C クラスに保存しました。xib には、曲の属性やその他のテキスト情報を書き込むことができる textview もあります。次に、音楽用にグラフィカルでアニメーション化できる 2 つ目のビューが必要です。私は Xcode の初心者ですが、openGL の経験があります。私のセットアップは最新の OS と Xcode バージョンです。

OpenGL ビューを IB のウィンドウにドラッグしようとすると、「Unsupported Configuration - NSOpenGLView in One Shot memory enabled window」という奇妙なエラー/警告が表示され (これは奇妙です)、openGL ビューは表示されません。アプリを実行します。

このサイトや他の場所の NSdocuments で OpenGL Views への参照があまり見つからないため、意図されていないことをしようとしているのではないかと思います。誰か私にアドバイスはありますか?ドキュメントベースのアプリを使用すべきではありませんか? openGL 以外のものを使用する必要がありますか? または、この場合、openGL View および View Controller をプログラムで 100% ビルドする必要があるのでしょうか? 適用可能なサンプル/チュートリアルへのアドバイスやポインタは、非常に役立ちます。

4

1 に答える 1

3

Interface Builder で Windows のメモリ属性から「One Shot」オプションを無効にしてみてください。

NSWindow のドキュメントから:

setOneShot: ウィンドウが管理するウィンドウ デバイスが画面リストから削除されたときに解放するかどうかを設定します。

- (void)setOneShot:(BOOL)oneShot

パラメーター

oneShot YES を指定すると、ウィンドウのウィンドウ デバイスが画面リストから削除された (非表示になった) ときに解放され、画面に戻ったときに別のウィンドウ デバイスが作成されます。NO でウィンドウ デバイスを再利用します。

討論

画面リストから削除されたウィンドウ デバイスを解放すると、表示に時間がかからない NSWindow オブジェクトのメモリが節約され、パフォーマンスが向上します。これは、ユーザーが 1 回か 2 回使用する可能性があるが継続的に表示しない NSWindow オブジェクトに特に適しています。

于 2013-12-09T07:43:34.507 に答える