Je suis juste de commencer à travailler sur les applications de l'iPhone. Comment puis-je savoir quand je devrais mettre des trucs dans le appdelegate par rapport à une classe personnalisée? Est-il une règle ou n'importe quel type d'analogie avec un autre langage de programmation comme python ou php qui utilise un appdelegate comme modèle?
Réponses
Trop de publicités?J'ai l'habitude d'éviter l'approche de la conception implicite par Andrew de l'utilisation du terme "cœur de votre application". Ce que je veux dire par là, c'est que je pense que vous devriez éviter la formation de grumeaux trop de choses dans un emplacement central -- bonne conception de programme normalement implique la séparation de la fonctionnalité de "zone de préoccupation".
Un délégué de l'objet est un objet qui est notifié lorsque l'objet auquel il est connecté atteint certains événements ou d'états. Dans ce cas, le Délégué d'Application est un objet qui reçoit des notifications lorsque le UIApplication objet atteint certains états. À de nombreux égards, il est un spécialiste de l'un-à-un modèle Observateur.
Cela signifie que la "zone de préoccupation" pour l'AppDelegate est de manutention spéciale UIApplication unis. Les plus importantes sont:
- applicationDidFinishLaunching: - bon pour la manutention sur-configuration de démarrage et de la construction
- applicationWillTerminate: - bon, pour le nettoyage à la fin
Vous devez éviter de mettre d'autres fonctionnalités dans le AppDelegate car ils n'ont pas vraiment leur place. Autres fonctions:
- Document de données, vous devriez avoir un gestionnaire de documents singleton (pour de multiples applications de document) ou un document singleton (pour un seul document les applications)
- Bouton/table/vue contrôleurs, vue déléguer des méthodes ou de l'autre point de vue, la manutention (sauf pour la construction de l'affichage de niveau supérieur dans applicationDidFinishLaunching:) -- ce travail devrait être en vue, les classes de contrôleur.
Beaucoup de gens pensent que ces choses dans leur AppDelegate parce qu'ils sont paresseux ou qu'ils pensent que le AppDelegate contrôles de l'ensemble du programme. Vous devriez éviter de centraliser dans votre AppDelegate car il brouille les domaines de préoccupation dans l'application et n'est pas à l'échelle.
Votre délégué d'application est le cœur de votre application. C'est effectivement votre Programme de "Contrôleur".
Le Délégué d'Application est la classe qui reçoit au niveau de l'application messages, y compris les applicationDidFinishLaunching message le plus couramment utilisé pour initier la création d'autres points de vue.
Bien que pas exactement similaire, vous pourriez considérer que la "main()" de routine de votre programme Cacao.