NSInteger - это примитив, а не объект! Что вы действительно делаете, так это увеличиваете адрес, на который указывает NSInteger *. Поскольку NSInteger имеет длину 4 байта, каждый раз, когда вы увеличиваете его, компилятор предполагает, что, поскольку он является указателем, вы хотите перейти к следующему NSInteger в памяти, поэтому вы получаете кратные 4. Просто удалите '*', когда вы объявляете NSInteger, и вы должны быть готовы. Таким образом, вместо объявления этого типа int *NameOfDeclaration;
просто удалите *
Это будет выглядеть так int NameOfDeclaration;