1
является литералом, и компилятор сделает его соответствующим числовым типом, если это уместно.
Обратите внимание, однако, что хотя NSInteger
и int
в большинстве случаев являются одним и тем же, NSNumber
является типом объекта. В этом случае ваш код не имеет смысла (и не должен компилироваться без предупреждений).
(На самом деле, есть некоторые обстоятельства, в которых это имеет смысл с точки зрения арифметики указателей, но это совсем не то, что вы хотите.)
Для случая NSNumber вы бы хотели что-то вроде:
day = [NSNumber numberWithInt:[day intValue] + 1];