Преобразование NSString в Int — Game Center

Я разрабатываю приложение, использующее игровой центр, но у меня возникла проблема. Я хотел бы, чтобы игрок отправил свой результат в таблицу лидеров, чтобы он мог бросить вызов друзьям. Вот код для оценки 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");

    }
}


 ];

}

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


person RafeeJ    schedule 26.01.2012    source источник
comment
Вам не подходит -[NSString intValue]?   -  person Costique    schedule 27.01.2012
comment
@Costique я добавил этот NSString *myString = [NSString stringWithString:@time]; scoreInt = [myString intValue]; но все равно не работает   -  person RafeeJ    schedule 27.01.2012


Ответы (1)


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

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

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

int i = [myString intValue];

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

Поскольку вы уже создали noSeconds как двойное, на самом деле нет необходимости приводить его к 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

person AtkinsonCM    schedule 26.01.2012
comment
Спасибо, но как мне реализовать это в моем коде? Прости! я полный новичок! - person RafeeJ; 27.01.2012
comment
@RafeeSkull-manJenkins - проверьте мой обновленный ответ, надеюсь, он поможет. - person AtkinsonCM; 28.01.2012
comment
Оценка по-прежнему не будет отправлена! пожалуйста, не могли бы вы написать мне, чтобы я мог ответить с моим проектом, вы можете увидеть, что я сделал неправильно? Спасибо любезно! - person RafeeJ; 28.01.2012