При создании 32-разрядных приложений, NSInteger - это 32-разрядное целое число. 64-разрядное приложение рассматривает NSInteger как 64-битное целое число.
Ответ 2
Кроме того, что typedef отличается в разных системах (long в 64-битных системах, int на 32-битной основе), не так уж много причин.
Возможно, создается впечатление, что NSInteger является объектом, если он не является.
Ответ 3
NSInteger будет 4 байта на 32-битной машине и 8 на 64-разрядной версии.