2009-09-03 8 views
0

Je construis une application simple basée sur des documents dans le cacao et j'ai des problèmes pour lier des données communes entre mes instances de document.cacao Applications documentaires

Je voudrais avoir une sorte de AppController et avoir tous mes documents pour accéder à la même instance de cette classe.

L'instanciation de l'objet dans document.xib crée des instances différentes pour chaque document. Et instanciant l'objet dans MainMenu rend l'objet inaccessible.

Comment puis-je y parvenir?

Répondre

1

Une approche typique consiste à créer une instance singleton d'un objet AppController. Vous pouvez également créer une instance AppController et la maintenir dans votre AppDelegate. Vous pouvez alors accéder plus tard de partout dans votre code en appelant

[[NSApp delegate] myAppController]

ou sur l'iPhone:

[[UIApplication sharedApplication].delegate myAppController]

Pour en savoir plus sur le superbe blog cocoawithlove http://cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html

0

En supposant que vous avez une bonne raison pour que des documents distincts partagent des données (par opposition à, disons, dans une fenêtre de préférences ou quelque chose), vous devriez probablement rendre le SharedDataController ("AppController" très large) un singleton. J'ai un billet de blog sur the correct way to make one.