2014-07-13 3 views
0

게임을 테스트 할 때 내 게임 점수는 3.49 초로 끝나지만 gamecenter에서 리더 보드에 표시되는 점수는 1 : 01 : 52.76입니다. 문제는 내가 NSString에서 int_64 (일명 long long)에 대입하는 정수 변환에 호환되지 않는 정수라고 말하는 노란색 플래그가 있다는 것입니다. 다음은 오류를 나타내는 코드 부분입니다. 대신 당신이 가지고있는 현재 행의게임 센터 점수가 올바른 점수를 제출하지 않음

- (IBAction)buttonPressed:(id)sender { 

    [self startTimer]; 

    count--; 

    countLabel.text = [NSString stringWithFormat:@"Score\n%i", count]; 

    // 2 

    if (count == 0) { 

     [self.stopWatchTimer invalidate]; 

     timeLabel.hidden = YES; 



     // Create date from the elapsed time 

     NSDate *currentDate = [NSDate date]; 

     NSTimeInterval timeInterval = [currentDate timeIntervalSinceDate:self.startDate]; 

     NSDate *timerDate = [NSDate dateWithTimeIntervalSince1970:timeInterval]; 



     // Create a date formatter 

     NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 

     [dateFormatter setDateFormat:@"'Your time: 'ss.SSS"]; 

     [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0.0]]; 



     // Format the elapsed time and set it to the label 

     NSString *timeString = [dateFormatter stringFromDate:timerDate]; 



     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Time is up!" 

                 message: timeString 

                 delegate:self 

               cancelButtonTitle:@"Play Again" 

               otherButtonTitles:@"Level Select",nil]; 



     [alert show]; 

     if (count == 0) { 

      GKScore *scoreReporter = [[GKScore alloc] initWithLeaderboardIdentifier:@"tap_novice"]; 



      scoreReporter.value = timeString; 



      scoreReporter.context = 0; 



      NSArray *scores = @[scoreReporter]; 



      [GKScore reportScores:@[scoreReporter] withCompletionHandler:^(NSError *error) { 

       if (error == nil) { 

        NSLog(@"Score reported successfully!"); 

       } else { 

        NSLog(@"Unable to report score!"); 

       } 

      }]; 

     } 

    }  

} 

@end 

답변

2

:

scoreReporter.value = timeString; 

당신은 사용해야합니다

int64_t timeAsInt = [timeString longLongValue]; 
scoreReporter.value = timeAsInt; 

가이 투표하고 답으로 선택하시기 바랍니다 the following link

+0

를 참조하십시오. – WMios