2011-07-17 6 views
1

나는 이것이 매우 기본적인 것을 알고 있지만 나는 명확한 설명이 필요하다. 나는 iPad 앱을 개발하는 데 어려움을 겪고 있습니다. 내 설명은 너무 많은 정보가 필요할 수 있지만 나와 함께 감당할 수 있습니다.포인터를 사용하는 이유는 무엇입니까?

두 개의 ViewController가 있습니다. 하나는 NewGameViewController이고 다른 하나는 GameViewController라고합니다. NewGameViewController에서 나는 그래서 같은 GameViewController을 표시 :

GameViewController *controller = [[GameViewController alloc] initWithNibName:@"GameViewController" bundle:nil]; 
[self.navigationController pushViewController:controller animated:YES]; 

그래서이 메모리에 GameViewController의 인스턴스를 만듭니다. GameViewController에는 일부 ivars 및 메서드가 정의되어 있습니다. ivars 중 하나는 GameViewController가로드 될 때 (viewWillAppear 메서드에서) 좌석 객체로 저장되는 배열입니다.

또한 player라는 개체가 있습니다. 이것은 UIView의 하위 클래스입니다. GameViewController가로드되면 최대 6 개의 플레이어 객체가 하위 뷰에 추가됩니다. NewGameViewController에 의해로드 된 GameViewController의 메모리에있는 동일한 인스턴스에 액세스 할 수 있으려면 각 플레이어 개체가 필요합니다. GameViewController의 동일한 인스턴스에 액세스하기 위해 플레이어 객체에서 포인터를 사용합니까? 나는 GameViewController의 새로운 인스턴스를 메모리에로드하고이를 사용하려고 시도하면 배열 ivar이 비어있어 사용하지 않는 경향이 있다는 것을 발견했다. GameViewController에 대한 포인터가 GameViewController의 올바른 인스턴스를 가리키고있는 것을 어떻게 확인할 수 있습니까?

답변

1

GameViewController를로드하면 하위 플레이어 에 최대 6 개의 플레이어 개체가 추가됩니다.

다음은 수행 할 수있는 작업입니다. containingViewController 또는 gameViewController라는 Player에서 속성을 정의합니다.

@property (nonatomic, retain) GameViewController *containingViewController; 

dealloc에에 또한 @synthesize containingViewController; 구현 파일 (Player.m)와 [containingViewController release];에서 잊지 마세요.

player1.containingViewController = self; 

당신의 모든 문제의주의해야 : 당신이 viewWillAppear 방법에 선수를 초기화 할 때

그런 다음 속성을 설정합니다.

+0

아 !!!!! 괜찮아! 나는 그 모든 일을했지만 마지막 줄을 놓치고있었습니다. player1.containingViewController = self; 고맙습니다. – dutsnekcirf

+0

문제 없습니다. iOS 개발의 세계에 오신 것을 환영합니다. –

관련 문제