1

J'ai fait une application simple en utilisant le modèle basé sur la vue. Je n'ai mis que la méthode didload nslog inside view dans le fichier viewController et aussi dans la méthode applicationDidFinishLaunch (dans appDelegate). Après la course j'ai eu: viewController Exécuter d'abord, puis appdelegate ..mais je pense appdelegate devrait d'abord, puis l'autre est appelé selon le besoin ... SVP me donner la bonne raison.objectif C question de base

A noté que -i n'a pas appelé viewController (didnot make object) dans mon appDelegate (dans l'application didFinishLaunch). J'utilise Si votre View Controller iOS4

Répondre

2

est une propriété du AppDelegate, similaire à la référence de code

@interface AppDelegate_Shared : NSObject <UIApplicationDelegate, UIAlertViewDelegate, OMFDataLoadDelegate> { 

    NSManagedObjectModel *managedObjectModel; 
    NSManagedObjectContext *managedObjectContext;  
    NSPersistentStoreCoordinator *persistentStoreCoordinator; 

    UIWindow *window; 

    UITabBarController *tabBarController; 

} 

alors il est probablement obtenir allouée par l'AppDelegate lorsqu'il est alloué. Selon la documentation Apple, viewDidLoad est exécuté après le chargement de la vue en mémoire, ce qui peut être un peu déroutant, car le langage peut vous faire croire que c'est quand il est chargé sur l'écran.

http://developer.apple.com/iphone/library/documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006926-CH3-SW25

Déplacez votre déclaration NSLog à viewDidAppear pour le résultat que vous attendiez. Voici deux exemples d'extraits avec la manière dont vous devriez vous attendre à ce que les instructions soient chargées.

ViewController.m

- (void) viewDidLoad { 
    NSLog(@"1st - this occurs when appDelegate allocates this object"); 
} 
- (void) viewDidAppear { 

    NSLog(@"3rd - this should appear after the applicationDidFinishLaunchingStatement"); 
} 

AppDelegate_Shared.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
    NSLog(@"2. Starting AppDelegate_Shared"); 

    [window addSubview:self.tabBarController.view]; 
    [window makeKeyAndVisible]; 

    NSLog(@"4. Leaving AppDelegate_Shared"); 
    return YES; 
} 
+0

Merci Travish pour nous permettre ... et j'ai appliqué ce que vous avez demandé, mais l'ordre est 1,2,4,3. Ma question est "quel est le flux de code?" je lis d'abord dans les documents 'main.m' appels 'classe appdelegate', puis d'autres classes à appeler ce que nous écrivons dans la méthode applicationDidFinishLaunch..can vous pouvez l'expliquer .. – chandra

0

Si la vue initiale n'a pas chargé alors clairement l'application n'a pas terminé son lancement.

Les messages sont envoyés dans le bon ordre.