2011-03-16 2 views
3

이것은 나를 미치게합니다. 나는 three20의 TTTableViewController를 사용하고 있으며 메모리 경고가 발생하면 화면이 흰색이됩니다. 자, 3 20 google 그룹을 읽은 후에는 tableView가 출시 된 것 같습니다. 그러나, 나는 내 인생을 위해 그것이 사실인지 확인하기위한 수표를 계산할 수 없다. 그리고 다시 그것을 만든다.three20 - TTTableViewController 메모리 경고가 빈 화면으로 표시되며 수정 방법은 무엇입니까?

나는이 문제를 해결할 것이라고 생각했기 때문에 다음 사용 되었으나, 그것이 if 문 만족하지 않는 것 같다

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 

    // If we don't have a datasource we need to reset it 
    if (!self.dataSource) { 
     // Create datasource again 
    } 

}//end 

사람이 이런 일이 발생하면 무엇을 알고 있나요을? Google 그룹은 도움이되지 않았습니다.

답변

0

TTTableViewController를 서브 클래 싱 하시겠습니까? 나는 전에 그것을 사용하지 않았지만, 그것은 마치 UITableViewController와 같다고 가정합니다 ...

"viewDidUnload"는 어떻게 생겼습니까? 여기에 tableview를 공개 하시겠습니까? 그렇다면 viewDidLoad에서 tableview를 작성하여 일치시켜야합니다.

View 프로그래밍 가이드를 읽으면 메모리 경고가 "viewDidUnload"를 호출하여 "viewDidLoad"에서 생성 된 데이터를 정리할 수 있기 때문에 dataSource를 viewDidAppear에서 사용할 수 있는지 확인할 필요가 없습니다.

+0

아니요, 서브 클래 싱하지 않습니다. 내 viewDidUnload 메서드에는 아무 것도 없으므로 3시 20 분 어딘가에 출시 될 예정입니다. –

+0

보기에 tttbc를 추가하는 메소드에 대한 코드를 공유 할 수 있습니까? –

0

나는 똑같은 문제가있어서 나를 미치게 만들었다.

아무도 320 문서에서 언급하지 않지만 UIViewController의 initWithNibName 함수를 사용하여 하위보기를 추가하면 안됩니다. 그렇게하면 메모리 경고가 이러한 하위 뷰를 해제합니다.

코드를 initWithNibName 함수에서 viewDidLoad 함수로 이동해보십시오. 일부 코드는 탐색 스타일과 같이 initWithNibName에 보관해야한다는 것을 알고 있습니다. 그러나 컨트롤러의 뷰에 추가 된 모든 하위 뷰는 viewDidLoad 함수에 있어야합니다.

0

일반적으로 클래스 생성자가 아닌 viewDidLoad에 뷰를 설정하는 데주의해야합니다. 예를 들어 실행기보기 컨트롤러의 생성자가 아닌 실행 파일보기를 viewDidLoad으로 설정해야합니다. 그렇지 않으면 메모리 경고 후 실행기가 비어있게됩니다.

그러나 TTTableViewController의 경우 테이블보기를 수동으로 설정하지 않았으므로 (일반적으로) 적용되지 않습니다. 나는 당신이 가지고 있던 동일한 문제를 가지고 있었고 결국 그것을 추적했다 : 나는 viewWillDisappear:을 재정의했고 [super viewWillDisappear:animated]에 전화하는 것을 잊었다. 즉, Three20 컨트롤러가 뷰 상태에 대해 유지하는 플래그 중 일부가 올바르게 업데이트되지 않았습니다.

또한 didReceiveMemoryWarning을 다시 정의하여 [self setEditing:NO]으로 전화하면 super을 호출하는 것이 좋습니다. 테이블 뷰의 상태가 혼란 스럽다는 것을 알았습니다 (테이블에 편집 모드를 사용하지 않는 경우에는 관련이 없습니다).

마지막으로 Three20에로드/비어 있음/오류 모드의 테이블이 제대로 복원되지 않는다는 버그가 있습니다. blog post by TwoCentStudiosproposed fix on github의 토론을 참조하십시오.

관련 문제