-3

これは本当にばかげた質問のようです。しかし、私がやろうとしているのは1、私の整数から引くことだけです。

    int *subtractor = [[[NSUserDefaults standardUserDefaults]objectForKey:@"numberOfAlerts"] intValue];
    NSLog(@"%i", subtractor);
    subtractor--;
    NSLog(@"%d", subtractor);
    NSNumber *savedNumber = [NSNumber numberWithInt:subtractor];
    [[NSUserDefaults standardUserDefaults]setObject:savedNumber forKey:@"numberOfAlerts"];
    [[NSUserDefaults standardUserDefaults]synchronize];

コンソールが印刷されます:

1 -3

デフォルトから情報をロードするとき、1それは良いことです。次に、1を引いて0にしようとしますが、-3になります。これはとてもイライラします!助けていただければ幸いです。

記録のために

コードをsubtractor++に変更します。そしてそれは印刷されるべきでした1 2

しかし、それは印刷されました1 5。したがって、4つ追加しました。

4

2 に答える 2

3

intValueintへのポインタではなく、intを返します。

減算器をintとして宣言する必要があります。

 int subtractor = [[[NSUserDefaults standardUserDefaults]objectForKey:@"numberOfAlerts"] intValue];
于 2013-03-19T02:35:45.830 に答える
2

Subtractorはintへのポインターであり、コードはintではなくポインターをデクリメントしています。試す(*subtractor)--

于 2013-03-19T01:22:56.073 に答える