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。这太令人沮丧了!非常感谢您的帮助!
对于记录
我将代码更改为
减法器++;
它应该打印出1
2
。
但它打印出1
5
。所以它增加了四个。
答案 0 :(得分:3)
intValue
返回一个int,而不是一个指向int的指针。
您必须将减法器声明为int:
int subtractor = [[[NSUserDefaults standardUserDefaults]objectForKey:@"numberOfAlerts"] intValue];
答案 1 :(得分:2)
Subtractor是一个指向int的指针,代码正在递减指针,而不是int。试试(*subtractor)--