1

私はcocos2dとCoreDataを使用しています。「AppDelegate.h」をインポートしましたが、そこからオブジェクトを作成できません。私がすることは次のことだけだと思います。

AppDelegate *delegate;

これを行うと、AppDelegateが定義されていないというエラーが表示されます。AppDelegateの.hファイルと.mファイルはメインファイルの隣にあります。

また、ファイルに書き込もうとしてもエラーは発生しませんが、書き込めません。

4

2 に答える 2

0

XCodeによって作成されたボイラープレートコード(XCodeを使用していると想定しています)は、*managedObjectContextと呼ばれるNSManagedObjectContextを作成します。コアデータモデル(ビューコントローラーなど)と対話する他のオブジェクトを作成する必要がある場合は、そのmanagedObjectContextオブジェクトを引数として渡す(またはカスタムクラスのプロパティにリンクする)だけで、カスタムクラスでそれを。アプリ内でAppDelegateオブジェクトを渡すことはお勧めできません。アプリデリゲートはコードベースの基盤にあり、通常のクラスとして扱われるべきではありません。アプリデリゲートをオブジェクトとして渡したり、IBで参照したりする必要がある(または必要になる)場合は確かにありますが、通常、アプリは

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification

メソッドを実行すると、そこからプライマリViewControllerを起動します。

Core Dataの中には、永続ストアコーディネーター(管理対象オブジェクトIDの取得など)も必要なものがあるため、それも渡す必要がある場合があります。Core Dataの操作についてサポートが必要な場合は、このテーマに関するすばらしい記事や本がたくさんあります。Core Dataは最初は理解しにくい場合があるため、できるだけ多く読むことをお勧めします。みんなが少し違った説明をしているので、最初はたくさんのチュートリアルを読むのに役立ちました。

これは、バインディング、コアデータについて書かれた最近のすばらしいチュートリアルであり、アプリデリゲートと連携して開始することができます:http ://www.raywenderlich.com/21752/how-to-use-cocoa-bindings-and-core-data -in-a-mac-app

于 2013-03-20T00:01:00.970 に答える
0

Cocos2d 2.0 では、AppDelegate は AppController に名前が変更されました

AppController *app = (AppController*)[UIApplication sharedApplication].delegate;
于 2013-03-20T06:05:20.913 に答える