私はcocos2dとCoreDataを使用しています。「AppDelegate.h」をインポートしましたが、そこからオブジェクトを作成できません。私がすることは次のことだけだと思います。
AppDelegate *delegate;
これを行うと、AppDelegateが定義されていないというエラーが表示されます。AppDelegateの.hファイルと.mファイルはメインファイルの隣にあります。
また、ファイルに書き込もうとしてもエラーは発生しませんが、書き込めません。
私はcocos2dとCoreDataを使用しています。「AppDelegate.h」をインポートしましたが、そこからオブジェクトを作成できません。私がすることは次のことだけだと思います。
AppDelegate *delegate;
これを行うと、AppDelegateが定義されていないというエラーが表示されます。AppDelegateの.hファイルと.mファイルはメインファイルの隣にあります。
また、ファイルに書き込もうとしてもエラーは発生しませんが、書き込めません。
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
Cocos2d 2.0 では、AppDelegate は AppController に名前が変更されました
AppController *app = (AppController*)[UIApplication sharedApplication].delegate;