#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-разрядной.