Какой тип перечисления в Objective-C - PullRequest
1 голос
/ 10 февраля 2012

Я просто пытаюсь выяснить, являются ли сами значения int, unsigned int, NSInteger.Мне показалось, что кто-то сказал, что это целые числа без знака, но в заголовочных файлах Apple я видел их для хранения отрицательных значений.

Ответы [ 3 ]

6 голосов
/ 10 февраля 2012

Перечисление - это особенность C (и C ++), а не Objective-C. Когда вы объявляете enum, вы объявляете новый тип данных C.

Размер данного типа данных перечисления может быть размером int, или он может быть достаточно большим, чтобы вместить каждое из объявленных значений перечисления. Это зависит от компилятора, и обычно есть настройки компилятора для управления обработкой перечислений.

Максимальное значение enum может быть int, поэтому вы всегда можете преобразовать любое значение enum в int. Обратное неверно; вы не можете обязательно преобразовать любое значение int в перечисление.

1 голос
/ 10 февраля 2012

Перечисленные целые числа являются 32-битными signed int с по наибольшему.

0 голосов
/ 10 февраля 2012

Это перечислимый тип. Вы можете определить свой собственный тип, который может принимать определенные значения.

Смотрите этот вопрос: Что такое перечисление типов в Objective-C?

Так что, если у вас было перечисление вроде:

typedef enum {    
   NBType1,
   NBType2,
   NBType2,
} NBType

параметр, передаваемый методу, будет иметь тип NBType.

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