Jestem po prostu zaczynają działać na iPhone apps. Skąd mam wiedzieć, kiedy należy oddanie rzeczy w AppDelegate kontra niestandardowej klasy? Czy istnieje przepis lub dowolnego rodzaju analogii z innym języku programowania jak Python lub PHP, który wykorzystuje AppDelegate jak wzór?
Jaki jest AppDelegate i jak mam wiedzieć, kiedy należy go używać?
Zwykle uniknąć podejście do projektowania w sposób dorozumiany przez Andrzeja stosowania terminu „sercu aplikacji”. Co mam na myśli to, że myślę, że należy unikać lumping zbyt wiele rzeczy w centralnej lokalizacji - dobry projekt Program obejmuje zazwyczaj rozdzielenie funkcjonalności przez „obszar zainteresowania”.
Obiekt delegat jest obiektem, który zostaje powiadomiony, gdy obiekt, do którego jest podłączony osiąga pewne zdarzenia lub stany. W tym przypadku wniosek Delegata jest obiektem, który otrzymuje informację, gdy obiekt UIApplication osiąga pewne stany. Pod wieloma względami jest to wyspecjalizowany jeden-do-jednego wzorca Obserwator.
Oznacza to, że „strefa niebezpieczna” dla AppDelegate operująca specjalne stany UIApplication. Najważniejsze z nich to:
- applicationDidFinishLaunching: - dobry do manipulacji na budowie i konfiguracji startowej
- applicationWillTerminate: - dobry do czyszczenia na koniec
Należy unikać umieszczania innych funkcji w AppDelegate ponieważ nie naprawdę nie należą. Taka inna funkcjonalność obejmuje:
- Dane dokumentu - trzeba mieć singleton Document Manager (dla wielu aplikacji dokumentu) lub pojedyncza dokumentów (do zastosowań pojedynczego dokumentu)
- Przycisk / tabela / widoku kontrolerów, widok metody przekazać lub innym zabiegom widok (z wyjątkiem budowy widzenia najwyższego poziomu w applicationDidFinishLaunching :) - praca ta powinna być w odpowiednich klasach widok kontrolera.
Wiele osób guzek te rzeczy do ich AppDelegate ponieważ są leniwi, albo uważają, że AppDelegate kontroluje cały program. Należy unikać centrowanie w AppDelegate ponieważ muddies obszary troski w aplikacji, a nie w skali.
Twój delegat aplikacja jest sercem aplikacji. To skutecznie swoją „Controller Program”.
Aplikacja Delegat jest klasa, która odbiera komunikaty na poziomie aplikacji, w tym wiadomości applicationDidFinishLaunching najczęściej używane do inicjowania tworzenia innych widoków.
Chociaż nie jest dokładnie podobna można myśleć o nim jako o „main ()” rutyny programie kakao.
Nadzieję, że to pomoże trochę więcej ...
Programiści nowy w tym języku zawsze mają to samo pytanie - czy program rozpocznie się od głównej metody? Tak, masz rację w tej sprawie; IOS również zacząć od głównej metody.
Twoim głównym klasy wywołuje funkcję poniżej:
UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
UIApplicationMain rozpoczyna się pętla i uruchomić aplikację infrastruktury Cocoa Touch, która tworzy UIApplicationobiekt. Nasza aplikacja potrzebuje zawartość tak objective-c wykorzystuje delegata z tym poradzić. Dlatego nazywamy go AppDelegate (akt jako delegat UIApplication). Realizujemy kilka opcjonalnych metod tego delegata i zachowuje się odpowiednio.
@Shivam, dzięki.
Z tego co rozumiem, z appDelegate, blisko co za Applicationto w Androidzie. viewDidLoad, viewDidDisappearJest porównywalny do tego, co Lifecycle Android. Każda aplikacja ma cykl życia, od rozpoczęcia do przerw z połączeń w najbliższych, do powiadomień wyświetlane. Jeśli potrzebujesz kodu zrobić coś specjalnego, gdy te systemzdarzenia to trzeba napisać kod metody.
W Androidzie używamy onPause, onDestroy, onCreatemetody trochę wywołania zwrotnego do obsługi takich zdarzeń systemowych.













