Почему есть NSInteger? - PullRequest
16 голосов
/ 03 мая 2011

Если NSInteger точно так же, как обычный int, тогда почему он существует и какова его цель - называться NSInteger?

Я новичок в MacПрограммирование на OS X, и у нас будет отчет для этого.

Ответы [ 3 ]

22 голосов
/ 03 мая 2011

Это архитектурно-безопасный тип (64 против 32 бит) для поддержки различных платформ и реализаций языка C.

Apple рекомендует использовать NSInteger поверх обычных типов в любом случае, я бы предположил для переносимости!

Вы можете прочитать больше на этом Справочник типов типов .

Основное описание:

При создании 32-разрядных приложений NSInteger является 32-битное целое число64-разрядное приложение рассматривает NSInteger как 64-разрядное целое число.

2 голосов
/ 03 мая 2011

За исключением того, что typedef отличается в разных системах (long в 64-битных системах, int в 32-битных), причин не так много.

Возможно, создается впечатление, что NSInteger - это объект, тогда как это не так.

1 голос
/ 03 мая 2011

NSInteger будет 4 байта на 32-битной машине и 8 на 64-битной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...