-3

这似乎是一个非常愚蠢的问题。但我想做的只是1从我的 int 中减去。

    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。这太令人沮丧了!任何帮助是极大的赞赏!

作为记录

我将代码更改为减法器++;它应该已经打印出来了1 2

但它打印出来了1 5。所以它增加了四个。

4

2 回答 2

3

intValue返回一个 int,而不是指向 int 的指针。

您必须将减法器声明为 int:

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

减法器是一个指向 int 的指针,代码是递减指针,而不是 int。尝试(*subtractor)--

于 2013-03-19T01:22:56.073 回答