chpwn правильно и отвечает на ваш вопрос напрямую. Это просто дополнительная информация.
Если вы хотите преобразовать примитивное значение в объект, например, для использования в NSArray , вы заключаете его в NSNumber следующим образом:
NSNumber *someValue = [NSNumber numberWithInt: 5];
То же самое относится к float , BOOL , char , double и тонне других примитивных типов.
Чтобы вернуть значение объекта обратно в примитив:
int someInteger = [someValue intValue];
Правило большого пальца:
Если вы выполняете много математических операций, вам нужен номер для локального использования или вам нужна высокая производительность, используйте примитивы.
Если вы храните значения в классах коллекции ( NSArray , NSSet , NSDictionary и т. Д.) И вам необходимо поведение типа объекта, такое как тесты членства , фильтрация предикатов, простое сохранение на диск или создание списка, используйте NSNumber .
Для получения дополнительной информации посмотрите документацию к классу NSNumber .