xcode 4.2에서 ARC가없는 빈 템플릿을 사용하여 iPhone 응용 프로그램을 만들었습니다. 참조 계산의 기초를 배우기 때문에 현재 ARC를 사용하지 않습니다. 왜 window
이왜 응용 프로그램에서 윈도우가 자동으로 렌더링됩니까 : didFinishLaunchingWithOptions : dealloc에서 해제 되었습니까?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
를 오토 릴리즈되어 응용 프로그램 위임에서 나는 다음과 같은 방법이 있습니까? AppDelegate가 앞으로 그것을 사용하지 않을 것이기 때문입니까? 그러나 인스턴스 변수에 할당됩니다. 또한 window
이 해제 된 dealloc 메소드가 있습니다. 이미 자동 릴리스 된 경우 릴리스되는 이유는 무엇입니까?
- (void)dealloc
{
[_window release];
[super dealloc];
}
감사합니다! 그것은 모든 것을 설명합니다. – jorurmol
직접 할당 된 경우 (self.window = ... 대신 window = ....) 필요할 필요는 없습니다. – jorurmol
맞습니다. 할당 때문에 retainCount가 +1이됩니다. dealloc에서는 0으로 되돌아갑니다. –