Если вы объявляете свое целое число как «NSInteger» или примитивный int int C, то то, что вы говорите, истинно. Но нет, если вы используете класс NSNumber. Позвольте мне объяснить:
NSInteger не является классом Objective-C. Это не что иное, как синоним целого числа. NSInteger определяется следующим образом:
#if __LP64__ || NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif
NSNumber является классом Objective-C, и подкласс NSValue. Можно создать объект NSNumber из подписанного или unsigned char, short int, int, long int, long long int, float, double или BOOL. Среди них NSNumber может использоваться только в коллекциях, таких как NSArray, где требуется объект, но NSInteger не может использоваться там напрямую.
Какие ошибки? ___ – kennytm