Это похоже на действительно немой вопрос. Но все, что я пытаюсь сделать, это вычесть 1
из моего int.Вычитание 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
. Таким образом, он добавил четыре.
Что вы делаете в вашем коде есть ** указатель арифметика **. Я не уверен, что это ваше намерение или нет, http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/BitOp/pointer.html –
@MikeD Нет, это не мое намерение. Я просто хотел вычесть значение int. а не указатель. Однако ответ Дэвида Бака дает мне ошибку 'sigabrt'. Ты знаешь почему? Спасибо вам за помощь! –
Код, который у вас есть, выглядит ОК. Единственное, о чем я могу думать, это первый NSLog, попробуйте @% d,% i не входит в список спецификаторов. Но я был бы удивлен, если бы это было так. К сожалению, сейчас я не рядом с Mac, поэтому я не могу запустить свой код для проверки. –