iPhone - основные данные NSInteger, integer32, int или что-то еще - PullRequest
3 голосов
/ 02 февраля 2012

У меня есть базовое значение данных, которое "целое число 32". Как мне установить / получить значения из этого?

с

[NSNumber numberWithInteger:X]

или с

[NSNUmber numberWithInt:X] 

Ответы [ 2 ]

8 голосов
/ 02 февраля 2012

Как сказал Джек, это typedef.Чтобы добавить ответ, вот как вы узнаете.

В XCode, удерживайте нажатой клавишу Apple с открытым исходным файлом.Вы увидите, что NSInteger станет ссылкой.После щелчка по нему откроется его определение.

#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 ||      NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif

Кроме того, точка зрения xlc0212 является хорошей.Если вы прочтете приведенное выше определение, это довольно ясно.

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

NSInteger - это просто typedef для int, поэтому вы не потеряете / не получите целочисленную точность, так или иначе Оба будут работать.

...