1

나는 뷰 기반 template.and를 사용하여 간단한 응용 프로그램을 만들었고 viewController 파일의 view didload 메소드 안에 nslog와 appDidFinishLaunch 메소드 (appDelegate)를 넣어서 어떤 클래스 파일이 먼저 호출되었는지 확인했습니다.객관적인 C 기본 질문

내가 실행 후 : viewController 먼저 실행하고 appdelegate ..하지만 appellegate 먼저 다음 다른 필요에 따라 호출해야한다고 생각 ... plz 날 적절한 reasion을 제공합니다.

참고 사항 - i는 내 appDelegate (didFinishLaunch 응용 프로그램 내부)에서 viewController (didnot make object)를 호출하지 않았습니다. 당신의보기 컨트롤러가 할당 될 때

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

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

    UIWindow *window; 

    UITabBarController *tabBarController; 

} 

그때가 아마 AppDelegate에 의해 할당지고 코드 참조 유사한 AppDelegate에의 속성 인 경우 내가

답변

2

ios4를 사용하고 있습니다. Apple의 문서보기에 따르면 DidLoad는 뷰가 메모리에로드 된 후에 실행됩니다. 언어가 화면에로드 될 때 언어가 믿을 수 있기 때문에 다소 혼란 스러울 수 있습니다.

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

당신이 기대했던 결과를 viewDidAppear에 NSLog 문을 이동

. 여기에 문이로드 될 것으로 예상되는 방식의 두 가지 샘플 코드 조각이 있습니다.

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

감사의 말을위한 travish ... 그리고 내가 무슨 sugested 적용,하지만 주문 1,2,4,3입니다. 질문은 "코드의 흐름은 무엇입니까?" 나는 'main.m'문서를 읽고 'appdelegate class'를 호출 한 다음 applicationDidFinishLaunch 메소드에서 작성하는 다른 클래스를 호출한다. 이것을 설명 할 수있다. – chandra

0

초기 뷰는 다음 명확하게 응용 프로그램이 완료되지 않았 발사를로드하지 않은 경우.

메시지는 올바른 순서로 전송됩니다.