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. !!
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.
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://)
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.
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