Różnica między AppDelegate.m i kontroler widoku.na

Czy ktoś mógłby mi powiedzieć kiedy używamy AppDelegate.m i AppDelegate.h podczas programowania iPhone ' a ? Użyłem tylko ViewController.m i ViewController.h jak nauka podstawowa. Chcę tylko wiedzieć, kiedy i dlaczego AppDelegate jest używany. Dzięki. !!

Author: Legolas, 2011-05-19

3 answers

Obie definiują klasy, ale klasy są używane do różnych rzeczy. ViewController.H / M definiuje klasę kontrolera widoku, która zarządza hierarchią widoków-zasadniczo jednym ekranem aplikacji. Możesz mieć wiele ekranów, z których każdy ma własny kontroler widoku.

AppDelegate.H / M definiuje klasę, która zarządza całościowo aplikacją. Aplikacja utworzy jedną instancję tej klasy i wyśle do tego obiektu wiadomości, które pozwalają delegatowi wpływać na zachowanie aplikacji w dobrze zdefiniowane czasy. Na przykład-application: didFinishLaunchingWithOptions: jest wysyłana, gdy aplikacja zakończy uruchomienie i będzie gotowa zrobić coś interesującego. Spójrz na stronę referencyjną Uiaplicationdelegate , aby znaleźć listę komunikatów, które delegat aplikacji może zaimplementować w celu modyfikacji zachowania aplikacji.

 21
Author: Caleb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-15 17:50:40

Chciałbym dodać następujący tekst do odpowiedzi @Caleb.

Jeśli nie zostanie zachowana ostrożność, AppDelegate może łatwo stać się jednym z najbardziej dostępnych obiektów w aplikacji. Zazwyczaj powstrzymuję się od wywoływania metod w AppDelegate z któregokolwiek z moich kontrolerów ViewController. Chyba, że trzeba zgłosić do AppDelegate coś, co wpłynęłoby na zachowanie całej aplikacji.

Przechowuję moje AppDelegate dla następujących:

  • inicjalizacja: cokolwiek musi być wykonywana przy pierwszym uruchomieniu (po zainstalowaniu lub aktualizacji)
  • migracja danych z wersji do wersji (np. jeśli używasz CoreData i migracje)
  • konfiguracja obiektów połączonych przez IBOutlets z MainWindow.xib
  • określenie początkowej orientacji startu w
  • zapisywanie niezakontraktowanych danych / stanu przed zakończeniem pracy aplikacji lub wejściem w tryb tła
  • rejestracja w usłudze Apple Push Notification i wysłanie tokena urządzenia do naszego Serwer
  • otwieranie jednego z obsługiwanych adresów URL aplikacji (np. maps://)
Aby dowiedzieć się więcej o innych przypadkach użycia i bardziej szczegółowym opisie AppDelegate, zobacz przewodnik programowania aplikacji na iOS.
 16
Author: octy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-19 20:37:20

Kontroler widoku . h / M jest odpowiedzialny za kontrolowanie połączenia między Twoim modelem a Twoim widokiem (więcej na MVC tutaj ).

AppDelegate . h / m jest odpowiedzialny za cykl życia aplikacji. Co zrobić, gdy użytkownik naciśnie przycisk home i opuści aplikację, co zrobić, gdy aplikacja wejdzie w tło. Takie rzeczy.

 6
Author: Francesco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-19 20:14:36