저는 장면 사이의 전환을 어떻게 구현할 것인지 궁금합니다.objective c와 cocos2d가 객체 관리를 할당했습니다.
내 앱의 ccscene1
은 class1
이고 ccscene2
은 class2
입니다.
scene1에서 scene2로 전환 할 때 scene1 init 메소드에 할당 된 인스턴스가 많아서 장면을 살 때마다 할당/해제하려고하지 않습니다. 어떻게 모든 할당 된 인스턴스 (및 그 중 일부는 서버 TCP 연결)가 2에서 돌아 왔을 때 처음으로 실행될 때 할당되지 않고 여전히 모든 장면 전환 중에 유효하게 유지되도록 scene1을 구현할 수 있는지 궁금합니다.
한 용액
: 글로벌 플래그를 설정하고, 대표로부터이 장면 l의 초기화 방법의 첫 시작인지 확인하고, 객체를 할당보다 먼저 실행에 1로 설정.내가 scene1을 떠난 후,이 객체는 내가 돌아 왔을 때 유효 할 것입니다? (나는 그들을 풀어주지 않는다고 말하며)?
주요 목표는 각 전환 서버에 연결, 그리고 내가 할 수있는 "전문"방법을 모색하고
-(id) init
{
if((self=[super init]))
{
socketInstance=[[SocketConnector alloc]init]; //only once !
socketInstance.delegate=self;
//later on i have transition :
[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:0.7f scene:[AdressBookScene scene]]];
(경우에 내가 solution1을 사용하고 있습니다) 유효 장면 l에서 대리자 인스턴스를 유지하지 않는 것입니다 이 .
전문적인 관리 방법은 다른 클래스가 할당 된 모든 것을 처리하도록하는 것입니다. 할당 할 수있는 곳에서 가져 와서 무료로 사용할 수 있습니다. 간단한 기본 프록시 클래스가 트릭을 수행합니다. 그러나 당신이 그 (것)들을 해방 할 때보다는 당신이 그 (것)들을 이용하는 클라이언트보다는 너무 보장 된 ㄴ다는 것을 보장해야한다. –
간단한 대답은 장면을 초기화 할 때마다, 장면의 init 코드에서 변경할 때마다 변경하지 않으려는 오브젝트 만들기를 취하여 다른 곳에 넣는 것입니다. – dqhendricks