2009-09-03 9 views
0

私はココアで単純なドキュメントベースのアプリケーションを構築しています。ドキュメントインスタンス間で共通のデータをリンクする際に問題があります。cocoaドキュメントベースのアプリケーション

私はAppControllerのいくつかの並べ替えを持っているし、このクラスの同じインスタンスにアクセスするすべての私のドキュメントを持っていると思います。

document.xibでオブジェクトをインスタンス化すると、ドキュメントごとに異なるインスタンスが作成されます。また、MainMenuでオブジェクトをインスタンス化すると、そのオブジェクトにアクセスできなくなります。

どうすれば実現できますか?

答えて

1

典型的なアプローチは、AppControllerオブジェクトのシングルトンインスタンスを作成することです。 AppControllerインスタンスを作成してAppDelegateに保持することもできます。 あなたは、後で

やiPhone上

[[NSApp delegate] myAppController]呼び出すことにより、どこでも、あなたのコード内からアクセスすることができます

[[UIApplication sharedApplication].delegate myAppController]

がさらに華麗cocoawithloveブログで読ん http://cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html

0

別々のドキュメントがデータを共有する正当な理由があると仮定すると(たとえば、 Preferencesウィンドウなど)では、おそらくSharedDataController( "AppController"は非常に広い)をシングルトンにする必要があります。 the correct way to make oneについてのブログ投稿があります。

関連する問題