Зачем нужен NSInteger?

#objective-c

#objective-c

Вопрос:

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

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

Комментарии:

1. Спасибо за исправление этого вопроса, @Tom Дакеринг!

Ответ №1:

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

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

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

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

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

Ответ №2:

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

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

Комментарии:

1. да, это действительно путает меня с другими классами NS

Ответ №3:

NSInteger будет содержать 4 байта на 32-разрядной машине и 8 на 64-разрядной.