UIApplicationDelegate
의 application:didFinishLaunchingWithOptions:
I가 다음 코드를 가지고UIWindow가 앱에서 만들어 질 때 UIApplication이 어떻게 알 수 있습니까? 에서는
NSLog(@"%d\n", [UIApplication sharedApplication].windows.count);
self.mainWindow = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
NSLog(@"%d\n", [UIApplication sharedApplication].windows.count);
(mainWindow
헤더에 선언 @property
이다)
제 NSLog
프린트 아웃 0
번째 인쇄 1
동안.
UIApplication
은 응용 프로그램에서 창을 만들고 초기화한다는 것을 알고 있습니까?
더 구체적으로 말하자면,'UIWindow' 클래스는 모든 윈도우가 이니셜 라이저에 추가 한 모든 윈도우의 배열을 유지하고'[UIApplication sharedApplication] windows]'는 UIWindow 클래스 메소드를 호출하여 그 배열을 필터링하고 반환합니다 . – dan
@ 단 - 어떻게 알 수 있습니까? 그 중 누구도 공개 API에 없습니다. – rmaddy
내가 구체적으로 무엇을했는지 궁금해서 호퍼와 UIKit을 분해했습니다. 분명히 그것은 언제든지 변경할 수 있고 의존 할 수없는 구현 세부 사항입니다. – dan