-2
두 장면 사이에 데이터 (점수)를 전달하려고합니다. 그러나 첫 번째 장면이 데이터를 전달하기 전에 두 번째 장면이 할당됩니다. 이유를 모르겠다. 내 코드 :들어오는 장면이 현재 장면이 데이터를 전달하기 전에 할당합니다.
MainScreen.m
-(void)gameOver
{
self.view.scene.userData = [[NSMutableDictionary alloc]init];
[self.view.scene.userData setObject:self.score forKey:@"score"];
SVGGameOverScreen *gameOverScreen = [[SVGGameOverScreen alloc]initWithSize:self.size];
gameOverScreen.view.scene.userData = [[NSMutableDictionary alloc]init];
[gameOverScreen.userData setObject:[self.view.scene.userData objectForKey:@"score"] forKey:@"score"];
NSLog(@"Value of score (FIRST SCREEN): %d", self.score.intValue);
NSLog(@"Value of object for score key (FIRST SCREEN) %@", [self.userData objectForKey:@"score"]);
[self.backgroundMusicPlayer stop];
//Transition to new view
SKTransition *transition = [SKTransition pushWithDirection:SKTransitionDirectionUp duration:1.0];
transition.pausesOutgoingScene = YES;
[self.view presentScene:gameOverScreen transition:transition];
}
GameOverScreen.m
in init method
...
self.score = [[NSNumber alloc]init];
self.score = [self.userData objectForKey:@"score"];
NSLog(@"Value of object for score key (SECOND SCREEN) %@", [self.userData objectForKey:@"score"]);
gameOver를 호출 할 때 다음과 같이 출력은 : 당신이 호출 할 경우
2013-12-18 15:47:48.646 [] Value of object for score key (SECOND SCREEN) (null)
2013-12-18 15:47:48.700 [] Value of score (FIRST SCREEN): 26
2013-12-18 15:47:48.700 [] Value of object for score key (FIRST SCREEN) 26
NSNumber에 대한 우려로 무엇을 제안 하시겠습니까? – EvilAegis
그 라인을 전부 제거하는 것. 새로운 NSNumber를 초기화하여 점수를 다음 줄의 다른 것과 동일하게 설정하는 것은 없습니다. –