Én csak most kezdenek dolgozni iPhone apps. Honnan tudom, hogy mikor kell üzembe dolgokat AppDelegate versus egyéni osztály? Van egy szabályt, vagy bármilyen analóg más programozási nyelv, mint a Python vagy PHP, hogy használ egy AppDelegate, mint a minta?
Mi a AppDelegate és hogyan tudom, hogy mikor kell használni?
Én általában kerülni a tervezési megközelítés sugallta András kifejezés használata „szíve az alkalmazás”. Mit értek ez, hogy azt hiszem, meg kell kerülni egy kalap alá túl sok mindent egy központi helyen - jó program tervezése általában magában elválasztó funkcionalitás „aggodalomra ad okot”.
A képviselő objektum olyan objektum, amely kap értesítést, amikor az objektumot, amelyhez csatlakozik elérnek egy bizonyos események vagy állapotok. Ebben az esetben a bejelentés kiküldött egy olyan objektum, amely bejelentést kap, amikor a UIApplication tárgy eléri bizonyos államokban. Sok tekintetben ez egy speciális egy-egy Observer minta.
Ez azt jelenti, hogy a „aggodalomra ad okot” a AppDelegate kezelő speciális UIApplication államokban. A legfontosabb ezek közül:
- applicationDidFinishLaunching: - jó a kezelési on-indító konfigurációs és építési
- applicationWillTerminate: - jó megtisztítására végén
Meg ne vonjon egyéb funkciós AppDelegate, mivel nem igazán tartoznak oda. Az ilyen egyéb funkciók között:
- A dokumentum adatok - ha kell egy dokumentumkezelő Singleton (több dokumentum alkalmazások), vagy egy dokumentum egyke (egy dokumentum alkalmazások)
- Gomb / tábla / nézet vezérlők, nézet küldötte módszerek vagy más nézetek kezelése (kivéve az építőiparban a felső szintű nézetet applicationDidFinishLaunching :) - ezt a munkát kell lenniük a megfelelő nézetvezérlőben osztályok.
Sokan egy kalap alá ezeket a dolgokat a saját AppDelegate mert lusta, vagy azt hiszik, a AppDelegate irányítja az egész programot. Meg kell kerülni a központosító AppDelegate hiszen muddies vonatkozó területek az app, és nem méretarányos.
Az alkalmazás megbízottja a szíve az alkalmazás. Ez hatékonyan a „Program Controller”.
Az alkalmazás küldötte az osztály, amely befogadja alkalmazás szintű üzenetek, beleértve az üzenet applicationDidFinishLaunching leggyakrabban használt a létrehozására más nézetek.
Bár nem pontosan azonos lehetett gondolni, mint a „main ()” rutin a Cocoa programban.
Remélem, ez segít egy kicsit ...
A programozók új ez a nyelv mindig ugyanazt a kérdést - nem a program indul a fő módszer? Igen, igazad van ebben az esetben; IOS alkalmazások is indul a fő módszer.
A fő osztály felhívja a lenti funkció:
UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
UIApplicationMain indul a Cocoa Touch fut hurok és alkalmazás infrastruktúra, amely létrehoz egy UIApplicationobjektumot. A kérelmet szüksége tartalmat, Objective-C használ küldöttként kezelni. Ezért hívjuk AppDelegate (hatnak küldötte UIApplication). Mi végre néhány választható módszerek, amelyek résztvevői és ennek megfelelően viselkedik.
@Shivam köszönhetően.
Abból, amit értem az appDelegate, közel van, mi az Applicationaz Android. Az viewDidLoad, viewDidDisappearhasonló ahhoz, amit az Android életciklusa. Minden alkalmazás van egy életciklusa, kezdeményezi a megszakítások származó érkező hívások az értesítések felbukkan. Ha szüksége van a kódot, hogy nem valami különleges, amikor ezek systemesemények történnek, akkor meg kell írni a kódot a módszereket.
Az Android használjuk onPause, onDestroy, onCreatekicsit visszahívási eljárások kezelni az ilyen rendszer eseményeket.













