Могу ли я безопасно хранить UInt32 для NSInteger? - PullRequest
0 голосов
/ 02 мая 2010

NSInteger достаточно большой для UInt32? Или это даже одно и то же?

Ответы [ 2 ]

2 голосов
/ 02 мая 2010

Нет, поскольку NSInteger является типом со знаком, а UInt32 - без знака.

Вам следует проверить определения этих типов в заголовочных файлах Apple, чтобы понять, что они означают. Это очень легко сделать. В открытом проекте в XCode выберите Файл -> Открыть быстро ... (Command-Shift-D) и введите название нужного вам типа в текстовое поле. Он найдет файл, в котором он определен. Или просто дважды щелкните тип в вашем исходном коде.

1 голос
/ 02 мая 2010

Вот код из NSObjCRuntime.h (из установки iPhone SDK 3.2):

#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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...