Нет. 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
позволяет инкапсулировать примитивные типы (int
, float
и т. Д.) В объект, который затем может быть сохранен в списках свойств и базовых данных.
Пример:
float pi = 3.1415;
NSNumber *piNumber = [NSNumber numberWithFloat:pi];
После этого вы можете легко получить доступ и / или преобразовать сохраненное значение в объект NSNumber
:
int piAsInteger = [piNumber intValue];