2014-02-10 4 views
1

iOS 간단한 게임을 만들고 있는데 게임을 할 때마다 점수를 얻는 int scorescore라는 변수가 있습니다. 나는 highscore라고 불리는 int 변수를 만들었고 NSUserDefaults를 사용하여 그것을 저장했다. 그리고 이것은 어떤 이유로 든 그것을 결코 기억할 수 없을 때 처음으로 항상 작동한다.높은 점수 회수가 작동하지 않습니다. Xcode

예. 나는 처음으로 게임을 플레이하면 2의 최고 점수를 얻었고 2의 최고 점수를 저장하고 모두 좋다. 하지만 다음 번에 2 점 이상 올라가면 높은 점수는 바뀌지 않을 것입니다.

int highscoreyeah = [[[NSUserDefaults standardUserDefaults] objectForKey:@"HIGHSCOREppp"] integerValue]; 

    if (scorescore >> highscoreyeah) { 
     [[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:scorescore] forKey:@"HIGHSCOREppp"]; 
    } 

    int highscoreshowm = [[[NSUserDefaults standardUserDefaults] objectForKey:@"HIGHSCOREppp"] integerValue]; 

내가하는 방식으로 스프라이트 키트를 사용하고, 몰라이 차이 ...

+1

안드레이 (Andrey)는 그의 대답에 포인트를두고 있습니다. 또한 쓰기 후에'userdefaults'를'동기화 '하는 것을 잊어서는 안됩니다 ...'[[NSUserDefaults standardUserDefaults] synchronize];' –

답변

2

변경

if (scorescore >> highscoreyeah) 

if (scorescore > highscoreyeah) 

>>를 비트 단위 연산자하게하는 경우 , 평등 교환 원이 아님 (매우 다른 것들)