2013-11-03 2 views
1

나는 이것이 우리 모두에게 매우 공통적 인 질문이라고 생각한다. 나는 몇 시간 동안 공부를 해왔지만 어쩌면 너무 나이가 들었 기 때문에 해결 방법을 찾지 못했습니다. 누군가가 도울 수 있기를 바라고 있습니다. 여기 전환보기, 실제 바이트 계속 올라간다

는 시나리오 :
  • 1 일 (주 일)이 7 UIbuttons, (그들 중 누구도이 순간에 다시 코드 없음)

    1. 나는 스토리 보드에 3보기 컨트롤러가 4 UIlabels , 3 UIImages, 그 중 아무 것도 h 파일에 아직 연결되어 있지 않습니다.
    2. 하나의 단추를 사용하여 다음보기 (모달)에 연결하고 두 번째보기에서 세 번째보기에 연결하는 단추 하나를 작성하고 마지막으로보기 3에서 단추를 눌러 기본보기에 다시 연결합니다.

    매우 간단합니다. 그러나 악기/할당에서 실행하면보기 3에서 기본보기로 돌아올 때마다 라이브 바이트 (1MB)에 큰 도약이 있음을 알 수 있습니다. (요약 : 지금까지 "H"또는 "M"에 코드가 없습니다). 그런 다음 일부 단추 및 레이블을 삭제하고 할당을 다시 시도했습니다. 라이브 바이트가 여전히 증가하는 것을 볼 수 있지만, 더 적은 양은 ... 분명히 무한한 메모리 증가 문제가 있습니다.

    여기 내 질문이 있습니다. 어떻게 해결할 수 있습니까? 버튼, 라벨 및 이미지에 아무 것도 붙이지 않은 채 많은 리소스를 할당하는 방법은 무엇입니까?

    많은 감사합니다.

    추신. 보고서에 누수가 발견되지 않고 계속 증가하고 있습니다 ...

    메인보기의 단추를 사용하여이보기를 2 번으로 보았습니다.하지만 다시 돌아올 때는 다시 돌아갈 수 있습니다. (당신은 언 와인드 SEGUE을 사용하지 않는) segues 항상 새로운 뷰 컨트롤러를 만들 수 있기 때문에

    [self dismissViewControllerAnimated:YES completion:nil]; 
    
    mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:Nil]; 
    
    UIViewController *go2= [mainStoryboard instantiateViewControllerWithIdentifier:@"view2"]; 
    
    [self presentViewController:go2 animated:YES completion:nil]; 
    
  • 답변

    2

    당신은 SEGUE를 사용하여 이전 컨트롤러에 "다시 이동하지"안 ... view3의 주. 그래서, 당신은 정말로 메인 뷰로 되돌아 가지 않습니다. 당신은 그것의 새로운 인스턴스를 생성하고 있습니다. 이 사이클을 진행하면서 점점 더 많은 뷰 컨트롤러를 추가하고 있으며 그 중 어느 것도 할당 해제되지 않습니다. 이 문제를 해결하려면 기본보기로 돌아가려면 unwind segue를 사용하거나 dismissViewControllerAnimated를 사용하여 코드로 돌아 가야합니다. 완료 :

    +0

    Thx Rdelmar! UIViewController * goback = [mainStoryboard instantiateViewControllerWithIdentifier : @ "main_one"]과 같은 것을 사용한다는 의미입니다. [self presentViewController : goback animated : 예 완료 : 없음]; 도 새 VC를 만들 예정입니까? – Summerhei

    +0

    dismissViewControllerAnimated : completion :을 사용하려고 시도했지만 모든 것이 방금 일시 중지되어 아무데도 갈 수 없습니다. = – Summerhei

    +0

    @Summerhei, 예, 새 인스턴스가 만들어집니다. – rdelmar