Quel est le AppDelegate et comment puis-je savoir quand l'utiliser?

voix
123

Je commence à travailler sur les applications iPhone. Comment puis-je savoir quand je consacrions des choses dans AppDelegate par rapport à une classe personnalisée? Y at-il une règle ou tout type d'analogie avec un autre langage de programmation comme Python ou PHP qui utilise un AppDelegate comme modèle?

Créé 17/03/2009 à 00:00
source utilisateur
Dans d'autres langues...                            


4 réponses

voix
220

J'évite normalement l'approche de conception implicite par l'utilisation d'Andrew du terme « cœur de votre application ». Ce que je veux dire par là que je pense que vous devriez éviter la formation de grumeaux trop de choses dans un emplacement central - bonne conception du programme implique normalement séparer la fonctionnalité par « sujet de préoccupation ».

Un objet délégué est un objet qui est averti lorsque l'objet auquel il est connecté atteint certains événements ou états. Dans ce cas, le délégué application est un objet qui reçoit des notifications lorsque l'objet UIApplication atteint certains états. À bien des égards, il est un à un modèle d'observateur spécialisé.

Cela signifie que la « zone de préoccupation » pour la AppDelegate gère les Etats UIApplication spéciaux. Le plus important d'entre eux sont:

  • applicationDidFinishLaunching: - bon pour la manipulation configuration sur le démarrage et la construction
  • applicationWillTerminate: - bon pour le nettoyage à la fin

Vous devez éviter de mettre d'autres fonctionnalités dans le AppDelegate car ils ne font pas vraiment là. Une telle autre fonctionnalité comprend:

  • Les données du document - vous devriez avoir un gestionnaire de documents singleton (pour de multiples applications de documents) ou un document singleton (pour les applications seul document)
  • contrôleurs Bouton / table / vue, vue des méthodes de délégué ou autre point de vue manutention (sauf pour la construction de la vue de niveau supérieur dans applicationDidFinishLaunching :) - ce travail devrait être dans les classes de contrôleur de vue respectifs.

Beaucoup de gens Lump ces choses dans leur AppDelegate parce qu'ils sont paresseux ou ils pensent que le AppDelegate contrôle l'ensemble du programme. Vous devez éviter centralisateur dans votre AppDelegate car il brouille les domaines de préoccupation dans l'application et ne pas à l'échelle.

Créé 17/03/2009 à 08:40
source utilisateur

voix
22

Votre délégué d'application est le cœur de votre application. Il est efficacement votre « contrôleur de programme ».

Le délégué demande est la classe qui reçoit des messages de niveau d'application, y compris le message applicationDidFinishLaunching le plus couramment utilisé pour initier la création d'autres vues.

Alors que vous pourriez penser pas exactement similaire comme la routine « main () » de votre programme de cacao.

Créé 17/03/2009 à 00:14
source utilisateur

voix
1

Espérons que cela aidera un peu plus ...

Les programmeurs nouveaux dans cette langue ont toujours la même question - le programme commence à partir d' une méthode principale? Oui, vous avez raison dans ce cas; Applications IOS aussi des contraintes méthode principale.
Votre classe principale appelle la fonction ci - dessous:

 UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 

UIApplicationMain lance la boucle exécuter Cocoa Touch et l' infrastructure application qui crée un UIApplicationobjet. Notre application a besoin de contenu de manière objective-c utilise un délégué pour gérer cela. Voilà pourquoi nous appelons AppDelegate (agir comme délégué UIApplication). Nous mettons en œuvre quelques - unes des méthodes facultatives de ce délégué et il se comporte en conséquence.

Créé 10/02/2016 à 10:44
source utilisateur

voix
-1

@Shivam, merci.

D'après ce que je comprends de appDelegate, est proche de ce que l' Applicationest dans Android. La viewDidLoad, viewDidDisappearest comparable à ce cycle de vie de Android. Chaque application a un cycle de vie, de lancer des interruptions d'appels arrivent, aux notifications Révéler. Si vous avez besoin de votre code pour faire quelque chose de spécial lorsque ces systemévénements se produisent alors vous devez écrire du code les méthodes.

Dans Android , nous utilisons onPause, onDestroy, des onCreateméthodes un peu de rappel pour gérer ces événements système.

Créé 27/01/2017 à 18:01
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more