Care este AppDelegate și cum știu când să-l folosească?

voturi
123

Sunt doar început să lucreze la aplicații pentru iPhone. Cum știu când ar trebui să punerea lucruri în AppDelegate față de o clasă personalizată? Există o regulă sau orice tip de analogie cu un alt limbaj de programare cum ar fi Python sau PHP care utilizează un AppDelegate ca model?

Întrebat 17/03/2009 la 00:00
sursa de către utilizator
În alte limbi...                            


4 răspunsuri

voturi
220

în mod normal, am evita abordarea de proiectare implicit prin utilizarea lui Andrew a termenului „inima cererii dvs.“. Ceea ce vreau sa spun prin asta este că eu cred că ar trebui să evite lumping prea multe lucruri într-o locație centrală - design bun program implică în mod normal, separarea funcționalitate de „zonă de interes“.

Un obiect delegat este un obiect care primește notificări atunci când obiectul la care este conectat ajunge la anumite evenimente sau stări. În acest caz, delegatul Application este un obiect care primește notificări atunci când obiectul UIApplication ajunge la anumite state. În multe privințe, este un model specializat de observator unu-la-unu.

Acest lucru înseamnă că „zona de interes“ pentru AppDelegate este de manipulare stări speciale UIApplication. Cele mai importante dintre acestea sunt:

  • applicationDidFinishLaunching: - bun pentru manipularea la pornire de configurare și de construcție
  • applicationWillTerminate: - bun pentru curățarea la sfârșitul anului

Ar trebui să evite punerea altor funcționalități din AppDelegate, deoarece acestea nu fac parte cu adevărat acolo. O astfel de alte funcționalități include:

  • Document de date - ar trebui să aibă un Singleton manager de documente (pentru aplicații document cu mai multe) sau un document de Singleton (pentru aplicații singur document)
  • Buton / masă / controlere, vedere la metode de manipulare a delega sau alte puncte de vedere (cu excepția celor pentru construcția nivel de vizualizare de top în applicationDidFinishLaunching :) - acest lucru ar trebui să fie în respectivele clase de vizualizare controler.

Mulți oameni forfetare aceste lucruri în AppDelegate lor, deoarece ei sunt leneși sau ei cred că AppDelegate controlează întregul program. Ar trebui să evite centralizatoare în AppDelegate dumneavoastră, deoarece diluează domeniile de interes în aplicație și nu scară.

Publicat 17/03/2009 la 08:40
sursa de către utilizator

voturi
22

delegatului cerere este inima cererii dumneavoastră. Este în mod eficient dvs. „Controller de program“.

Delegatul Application este clasa care primește mesaje de la nivel de aplicație, inclusiv mesajul applicationDidFinishLaunching cel mai frecvent utilizate pentru a iniția crearea de alte puncte de vedere.

Deși nu este exact similare pe care le-ar putea gândi la ea ca „principal) (“ rutina a programului de cacao.

Publicat 17/03/2009 la 00:14
sursa de către utilizator

voturi
1

Sper că acest lucru va ajuta un pic mai mult ...

Programatorii noi la această limbă au întotdeauna aceeași întrebare - Programul începe de la o metodă principală? Da, ai dreptate în acest caz; Aplicațiile IOS , de asemenea , începe de la o metodă principală.
Clasa principală apelează funcția de mai jos:

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

UIApplicationMain începe infrastructura rula buclă și app de cacao Touch , care creează un UIApplicationobiect. Aplicația noastră are nevoie de conținut atât de obiectiv-C folosește un delegat să se ocupe de acest lucru. De aceea noi o numim AppDelegate (acționează ca delegat al UIApplication). Noi pune în aplicare unele dintre metodele opționale ale acestui delegat și se comportă în consecință.

Publicat 10/02/2016 la 10:44
sursa de către utilizator

voturi
-1

@Shivam, mulțumesc.

Din ceea ce am înțeles de appDelegate, este aproape de o Applicationeste în Android. viewDidLoad, viewDidDisappearEste comparabil cu ceea ce durata ciclului de viață Android. Fiecare aplicatie are un ciclu de viață, de la lansarea la întreruperi de la apelurile care intră, la notificări care arată în sus. Dacă aveți nevoie de codul dvs. de a face ceva special atunci când aceste systemevenimente au loc atunci ai nevoie pentru a scrie cod metodele.

În Android folosim onPause, onDestroy, onCreatemetode de apel invers cam să se ocupe de astfel de evenimente de sistem.

Publicat 27/01/2017 la 18:01
sursa de către utilizator

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