Преобразование NSString в Int - Game Center - PullRequest
0 голосов
/ 27 января 2012

Я занимаюсь разработкой приложения, использующего игровой центр, но у меня возникла проблема.Я бы хотел, чтобы игрок отправил свой счет в таблицу лидеров, чтобы он мог бросить вызов друзьям.Вот код для оценки NSString.

-(IBAction)gasPedalPressed:(id)sender {

double noSeconds = (double) [self.startDate timeIntervalSinceNow] * -1000;


NSString *reactionTime= [[NSString alloc] initWithFormat:@"Good Job! You're reaction time is %1.0f Ms. Let's see if you can do better...", noSeconds];

NSString *time= [[NSString alloc] initWithFormat:@"%1.0f Ms", noSeconds];


if(greenLightOn == 0)
    reactionTime = @"Slow down! You have to wait for the green light. Let's see if you can do better...";

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Reaction Time" message:reactionTime 
                                               delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];

, и вот что я хочу, чтобы это соответствовало:

-(IBAction)submitscore:(id)sender {
GKScore *scoreReporter = [[GKScore alloc] initWithCategory:@"1234567890"];

scoreReporter.value = score.text;    
[scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {



    if (error !=nil) {;
        NSLog(@"failed sub score");
    } else {

        NSLog(@"submitted score");

    }
}


 ];

}

Пожалуйста, помогите !!

1 Ответ

2 голосов
/ 27 января 2012

Если у вас есть строка:

NSSting *myString = [NSString stringWithString:@"2"];

Вы можете получить значение int из строки с помощью:

int i = [myString intValue];

[править] - В ответ на ваш комментарий:

Поскольку вы уже создаете noSeconds как double, на самом деле нет необходимости приводить его к NSString, а затем обратно.Вы можете просто передать noSeconds в созданный вами экземпляр GKScore.

Чтобы ваш метод submitScore узнал о вашей переменной noSeconds, вам нужно будет создать ее как переменную экземпляра.,(или вы можете просто передать его как аргумент метода)

Итак, в вашем .h:

double noSeconds;

@property (nonatomic, assign) double noSeconds;

, затем в вашем .m:

@synthesize noSeconds;

-(IBAction)gasPedalPressed:(id)sender {
    ...
    noSeconds = (double) [self.startDate timeIntervalSinceNow] * -1000;
    ...
}

-(IBAction)submitscore:(id)sender {
    ...
    GKScore *scoreReporter = [[[GKScore alloc] initWithCategory:@"123"] autorelease];
    scoreReporter.value = noSeconds;
    ...
}

И всегда полезно взглянуть на соответствующую документацию: Документы GKScore

...