2010-12-19 2 views
0

내 iPad 애플 리케이션에 3 개의보기 컨트롤러가 있습니다. 첫 번째 파일이 표시되면 Instruments의 Activity Monitor에서 앱의 메모리가 25MB라고 알려줍니다. [self presentModalViewController] 호출 후, 새로운 뷰 컨트롤러가 팝업되고, 메모리는 50MB까지 올라간 다음, 세 번째 것은 70-75MB가됩니다.iPad보기 컨트롤러 메모리 관리

iPad 개발을위한 최상의보기 컨트롤러 메모리 관리는 무엇입니까? 나는 실제 iPad를 사용할 때마다 항상 메모리 경고를받습니다.

미리 감사드립니다. 제 모국어가 아니기 때문에 제 영어가 유감입니다. :)

답변

0

당신이 당신의 메모리 누수를 확인해 봤어?
인스트루먼트 -> 누설.

http://developer.apple.com/library/ios/#documentation/Performance/Conceptual/ManagingMemory/Articles/FindingLeaks.html

또 다른 고려 사항은 ALLOC에 있으며 모든 올바르게 개체를 해제, 그것은 쉽게,하지만 필요가 없습니다.

빌드 옵션에서 다른 컨트롤 (RUN_CLANG_STATIC_ANALYZER)을 사용하여 컴파일 타임에 잘못된 릴리스를 모두 표시 할 수 있습니다.

alberto,

1

iPad에는 256 MB의 RAM 만 있으며, 이는 iPhone 4의 절반입니다.

보기 컨트롤러가 많은 리소스를로드하고 있거나 다른 곳에 많은 메모리를 할당하고있는 것으로 보입니다. 인스트루먼트 도구를 사용하여 메모리가 정확히 할당 된 위치를 찾을 수 있어야합니다.

0

제 생각에는 각 View Controller의 viewDidUnload 메소드를 살펴 보는 것이 좋습니다. iOS 3.0을 실행하면 앱이 메모리 경고를받을 때 iOS가 메모리를 다시 차지하려고 시도하는 장소입니다.

더 명확히 말하면이 메소드에서 모든 IBOutlet을 nil로 설정해야합니다. 그러면 불필요한 UI 물건 (불필요한 nib 파일이 사용자에게 표시되지 않기 때문에 불필요 함)이 삭제됩니다 할당 된 메모리를 OS로 반환합니다. 그리고 다시 나타나면 viewDidLoad 메서드에 의해 재생성됩니다.

샘플 코드 :

- (void)viewDidUnload { 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil;