Ποια είναι η AppDelegate και πώς μπορώ να ξέρω πότε να το χρησιμοποιήσετε;

ψήφοι
123

Είμαι μόλις αρχίζουν να εργάζονται στο iPhone apps. Πώς μπορώ να ξέρω πότε θα πρέπει να θέτει τα πράγματα σε AppDelegate σε σχέση με μια προσαρμοσμένη κατηγορία; Υπάρχει ένας κανόνας ή οποιοσδήποτε τύπος αναλογία με άλλη γλώσσα προγραμματισμού όπως Python και PHP που χρησιμοποιεί AppDelegate σαν μοτίβο εκεί;

Δημοσιεύθηκε 17/03/2009 στις 00:00
πηγή χρήστη
Σε άλλες γλώσσες...                            


4 απαντήσεις

ψήφοι
220

Εγώ κανονικά να αποφευχθεί η προσέγγιση του σχεδιασμού που συνεπάγεται η χρήση Ανδρέα του όρου «καρδιά της αίτησής σας». Τι εννοώ με αυτό είναι ότι νομίζω ότι θα πρέπει να αποφεύγουν αμάλγαμα πάρα πολλά πράγματα σε μια κεντρική τοποθεσία - καλό σχεδιασμό του προγράμματος περιλαμβάνει συνήθως διαχωρίζει τη λειτουργικότητα με την «πηγή ανησυχίας».

Ένα αντικείμενο εκπρόσωπος είναι ένα αντικείμενο που παίρνει ειδοποιηθείτε όταν το αντικείμενο με το οποίο είναι συνδεδεμένο φτάνει ορισμένα γεγονότα ή καταστάσεις. Στην περίπτωση αυτή, ο Εκπρόσωπος Η εφαρμογή είναι ένα αντικείμενο το οποίο λαμβάνει ειδοποιήσεις όταν το αντικείμενο UIApplication φτάνει σε ορισμένα κράτη. Από πολλές απόψεις, είναι ένα εξειδικευμένο σχέδιο Παρατηρητής ένας-προς-έναν.

Αυτό σημαίνει ότι ο «τομέας ανησυχίας» για την AppDelegate χειρίζεται ειδικές καταστάσεις UIApplication. Το πιο σημαντικό από αυτά είναι:

  • applicationDidFinishLaunching: - καλό για το χειρισμό on-εκκίνηση διαμόρφωση και κατασκευή
  • applicationWillTerminate: - καλό για τον καθαρισμό στο τέλος

Θα πρέπει να αποφύγουμε να βάλουμε άλλες λειτουργίες στο AppDelegate, δεδομένου ότι στην πραγματικότητα δεν ανήκουν εκεί. Τέτοιες άλλες λειτουργίες περιλαμβάνονται:

  • τα στοιχεία του εγγράφου - θα πρέπει να έχετε μια μονήρεις διευθυντή έγγραφο (για πολλαπλές εφαρμογές εγγράφου) ή μονήρεις έγγραφο (για εφαρμογές ενιαίο έγγραφο)
  • Κουμπί / τραπέζι / προβολή των ελεγκτών, τις μεθόδους εκπρόσωπος προβολή ή χειρισμό διαφορετική θέα (εκτός από την κατασκευή της άποψης υψηλού επιπέδου στο applicationDidFinishLaunching :) - το έργο αυτό θα πρέπει να είναι στις αντίστοιχες κατηγορίες προβολή ελεγκτή.

Πολλοί άνθρωποι εφάπαξ αυτά τα πράγματα σε AppDelegate τους, επειδή είναι τεμπέληδες ή ότι η AppDelegate ελέγχει το σύνολο του προγράμματος. Θα πρέπει να αποφεύγεται η συγκεντρωτική στην AppDelegate σας, δεδομένου ότι θολώνει τις περιοχές ανησυχίας στην εφαρμογή και δεν κλιμακώνεται.

Απαντήθηκε 17/03/2009 στις 08:40
πηγή χρήστη

ψήφοι
22

Αντιπρόσωπος της εφαρμογής σας είναι η καρδιά της αίτησής σας. Είναι αποτελεσματικά «Controller Πρόγραμμα» σας.

Ο Εκπρόσωπος εφαρμογή είναι η κλάση που λαμβάνει μηνύματα σε επίπεδο εφαρμογής, συμπεριλαμβανομένων του μηνύματος applicationDidFinishLaunching που χρησιμοποιούνται πιο συχνά για να ξεκινήσει η δημιουργία των άλλων απόψεων.

Αν και δεν είναι ακριβώς όμοια θα μπορούσατε να σκεφτείτε από το ως «κύριο ()» ρουτίνα του προγράμματος Κακάο σας.

Απαντήθηκε 17/03/2009 στις 00:14
πηγή χρήστη

ψήφοι
1

Η ελπίδα αυτή θα βοηθήσει λίγο περισσότερο ...

Προγραμματιστές νέα σε αυτή τη γλώσσα να έχουν πάντα την ίδια ερώτηση - Το πρόγραμμα ξεκινά από μια κύρια μέθοδος; Ναι, έχετε δίκιο σε αυτή την περίπτωση? IOS εφαρμογές ξεκινήσει επίσης από μια κύρια μέθοδος.
Κύρια τάξη σας καλεί την παρακάτω συνάρτηση:

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

UIApplicationMain ξεκινά την εκτέλεση βρόχου και την εφαρμογή των υποδομών κακάο Touch, η οποία δημιουργεί ένα UIApplicationαντικείμενο. Η εφαρμογή μας χρειάζεται περιεχόμενο, έτσι στόχος-c χρησιμοποιεί έναν πληρεξούσιο για να χειριστεί αυτό. Γι 'αυτό λέμε AppDelegate (ενεργεί ως εκπρόσωπος της UIApplication). Έχουμε εφαρμόσει κάποιες από τις προαιρετικές μεθόδους της εν λόγω εκπροσώπου και συμπεριφέρεται ανάλογα.

Απαντήθηκε 10/02/2016 στις 10:44
πηγή χρήστη

ψήφοι
-1

@Shivam, ευχαριστώ.

Από ό, τι καταλαβαίνω της appDelegate, βρίσκεται κοντά σε ό, τι ένα Applicationείναι το Android. Ο viewDidLoad, viewDidDisappearείναι συγκρίσιμο με αυτό του κύκλου ζωής του Android. Κάθε εφαρμογή έχει ένα κύκλο ζωής, από την έναρξη έως διακοπές από τις κλήσεις που έρχονται, να ειδοποιήσεις εμφανίζονται. Αν χρειάζεστε τον κωδικό σας για να κάνετε κάτι ιδιαίτερο όταν αυτά systemσυμβαίνουν τα γεγονότα τότε θα πρέπει να γράφετε κώδικα των μεθόδων.

Σε Android χρησιμοποιούμε onPause, onDestroy, onCreateκάπως επανάκλησης μεθόδους για να χειριστεί τέτοια συμβάντα του συστήματος.

Απαντήθηκε 27/01/2017 στις 18:01
πηγή χρήστη

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