0

私はこのコードを持っています。合計秒数を保存し、結果ビューコントローラーにロードします。そして、結果のView Controllerに、このコードを入れました。

- (void) counting
{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSNumber *loadSecond = [defaults objectForKey:@"saveSecond"];
    NSLog(@"last save is %@", loadSecond); // in here, log is displaying 30 seconds
    scratch = fmod(secondCount,3600);
    hour =  secondCount / 3600;
    minute = scratch / 60;
    second = fmod(scratch,60);
    labelRecord.text = [NSString stringWithFormat:@"%d:%d:%d", hour , minute, second];
}

上記から、NSLog は最後の保存カウントを 30 秒間表示しています。これは正しいですが、その 30 秒を secondCount に変更するにはどうすればよいですか? labelRecordで使用したいからです。

4

3 に答える 3

3

この行を変更

NSNumber *loadSecond = [defaults objectForKey:@"saveSecond"];

int loadSecond = [[defaults objectForKey:@"saveSecond"] intValue];

これは、キー saveSecond のオブジェクトがNSNumber.

于 2012-07-20T07:35:50.753 に答える
1

ドキュメントをざっと見てみるとNSUserDefaults、整数を返すメソッドがあることがわかります。

NSInteger loadSecond = [defaults integerForKey:@"saveSecond"]; 

NSIntegerはただのint. 無印のものもNSUIntegerあります。

于 2012-07-20T07:45:01.737 に答える