2013-03-25 2 views
1

다른 누군가가 개발 한 앱을 유지 관리하고 있으며 디버깅 할 때 이상한 동작이 발생합니다. ,relaodData가 viewDidLoad를 호출하는 이유

- (void)viewDidLoad 
{ 
     [super viewDidLoad]; 
     [self fillArray]; 
} 

-(void)fillArray{ 
    arrayProduct = [[NSMutableArray alloc] init]; 
    //fill in the array from server 
    [self.objTableView reloadData];//refresh the table view 
} 

이상한 행동을 한 번 [self.objTableView reloadData]; 문을 실행한다 : 다른 클래스에서 뷰 컨트롤러 객체를 할당 할 때, 그것은 내가 배열을 작성하는 또 다른 방법으로 전화를 걸 viewDidLoad에, viewDidLoad를 호출합니다 viewDidLoad이 다시 호출됩니다. 왜 이런 일이 일어나는 걸까요? 고맙습니다.

+0

다른 기능으로 테이블을 다시로드하기 때문에. 일단 그 기능으로 끝나면 이전 기능으로 진행하기 위해 이전 기능으로 다시 돌아갑니다. –

+0

안녕하세요, 나는 다른 기능에서 테이블을 다시로드하지 않는 것을 확인했습니다. – Malloc

+0

질문에 따라 테이블보기가 두 번 다시로드됩니다. 또는 브레이크 포인트가 두 번 작동하여'- (void) viewDidLoad'? –

답변

0

플래그를 사용하여이 문제를 해결할 수 있습니다.

BOOL 변수를 선언하고 reloadData 메서드를 호출하기 전에 true로 만듭니다. viewDidLoad 변수가 true인지 확인한 다음 배열을 초기화하지 마십시오.

희망이 도움이 될 것입니다.

모두 최고 !!!

+1

에 대한 전체 코드를 게시해야합니다. 이것이 최후의 수단이어야합니다. 'viewDidLoad'가 두 번 호출되는 것은 정상적인 일이 아닙니다. –

+0

그리고 뭐라구?, 너의 시야가 언 로딩되어 메모리를 비울 때. – EralpB

관련 문제