로테이션에서 상당히 복잡한 TabBarController 앱에서 메모리 누수를 디버그하려고합니다. 그래서 AppDelegate, FirstViewController 및 SecondViewController가있는 아주 간단한 해골 앱을 만들었습니다. 각각 iOS 프로그래밍, The Big Nerd Ranch Guide 2nd Ed의 지시에 따라 뷰와 라벨이있는 별도의 펜촉으로 연결되었습니다. 탭이 작동하고 뷰가 표시됩니다.SimpleTabBarController 누수 메모리
의 CALayer UIKit의 UIView _createLayerWithFrame 있는 UIImageView UIClassicController _setupWindow
편집 : : 음 FWIW 나는 회전을 활성화하면 나는 여전히 회전에 아이 패드 장치에 대한 누수를 얻을. 나는 엑스 코드 3.26과 iOS4.3 템플릿을 사용 :
보기 -> 아이 패드 -> NO CODE 추가되지 ->이 템플릿 코드와 함께 회전에 아이 패드 NO 누출에 대한 테스트 :
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
보기 - -> 아이폰 -> 아이 패드 SAME 누출에 대한 테스트가 보기 - -> 아이폰 -> 약간 다른 코드를 추가 -> 프로젝트에 상기에서 똑같은 코드를 추가> 아이 패드 SAME 누출에 대한 테스트
// Override to allow orientations other than the default portrait orientation.
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)x {
//return YES;
return (x== UIInterfaceOrientationPortrait) || UIInterfaceOrientationIsLandscape(x);
}
그래서 iPhone4를 테스트 할 때 누출이 있는지 기다려 볼 것입니다. 이는 한 줄의 코드를 추가해야하는 매우 재현 가능한 오류입니다. 혼란스러워.
당신이 옳지 않습니다. View viewController는 자동 렌더링 된 객체입니다. 코드를 계속 살펴보십시오. –
그가 코드에 사용하는 단어는 오도 된 것입니다. viewControllers는 뷰가 아닌 배열입니다. 그는 말합니다 : NSArray * viewControllers = [NSArray arrayWithObjects : vc1, vc2, nil]; –
아아, 자기 배열이 자동으로 등록 된 것 같습니다. –