Создание массива целых чисел в iOS

Если вы хотите создать массив целых чисел, можете ли вы использовать NSInteger? Нужно ли использовать NSNumber? Если да, то почему?

7 Solutions collect form web for “Создание массива целых чисел в iOS”

Вы можете использовать простой старый массив C:

NSInteger myIntegers[40]; for (NSInteger i = 0; i < 40; i++) myIntegers[i] = i; // to get one of them: NSLog (@"The 4th integer is: %d", myIntegers[3]); 

Или вы можете использовать NSArray или NSMutableArray , но здесь вам нужно будет обернуть каждое целое число внутри экземпляра NSNumber (поскольку объекты NSArray предназначены для хранения экземпляров класса).

 NSMutableArray *myIntegers = [NSMutableArray array]; for (NSInteger i = 0; i < 40; i++) [myIntegers addObject:[NSNumber numberWithInteger:i]]; // to get one of them: NSLog (@"The 4th integer is: %@", [myIntegers objectAtIndex:3]); // or NSLog (@"The 4th integer is: %d", [[myIntegers objectAtIndex:3] integerValue]); 

C массив:

 NSInteger array[6] = {1, 2, 3, 4, 5, 6}; 

Objective-C Array:

 NSArray *array = @[@1, @2, @3, @4, @5, @6]; // numeric values must in that case be wrapped into NSNumbers 

Swift Array:

 var array = [1, 2, 3, 4, 5, 6] 

Это тоже верно:

 var array = Array(1...10) 

NB: массивы строго типизированы в Swift; в этом случае компилятор выводит из содержимого, что массив представляет собой массив целых чисел. Вы также можете использовать этот синтаксис явного типа:

 var array: [Int] = [1, 2, 3, 4, 5, 6] 

Если вам нужен массив парных разрядов, вы должны использовать:

 var array = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] // implicit type-inference 

или:

 var array: [Double] = [1, 2, 3, 4, 5, 6] // explicit type 

Если вы хотите использовать NSArray, вам нужен класс Objective-C, то есть требование NSNumber.

Тем не менее, Obj-C по-прежнему C, поэтому вы можете использовать обычные C-массивы и использовать регулярные ints вместо NSNumbers, если вам нужно.

Вы можете использовать CFArray вместо NSArray. Вот статья, объясняющая, как это сделать.

 CFMutableArrayRef ar = CFArrayCreateMutable(NULL, 0, NULL); for (NSUInteger i = 0; i < 1000; i++) { CFArrayAppendValue(ar, (void*)i); } CFRelease(ar); /* Releasing the array */ 

То же самое относится и к версии CoreFoundation других контейнеров.

Я создал простую обертку Objective C вокруг старого старого массива C, который будет использоваться более удобно: https://gist.github.com/4705733

Если порядок ваших целых чисел не требуется, и если существуют только уникальные значения

вы также можете использовать NSIndexSet или NSMutableIndexSet. Вы сможете легко добавлять и удалять целые числа или проверять, содержит ли ваш массив целое число с

 - (void)addIndex:(NSUInteger)index - (void)removeIndex:(NSUInteger)index - (BOOL)containsIndexes:(NSIndexSet *)indexSet 

Подробнее см. Документацию .

Я думаю, что намного проще использовать NSNumbers. Это все, что вам нужно сделать:

 NSNumber *myNum1 = [NSNumber numberWithInt:myNsIntValue1]; NSNumber *myNum2 = [NSNumber numberWithInt:myNsIntValue2]; . . . NSArray *myArray = [NSArray arrayWithObjects: myNum1, myNum2, ..., nil]; 
  • iOS Добавить несколько необязательных значений в Swift3
  • iOS - Alamofire v2 Basic Auth не работает
  • Насколько безопасно использовать сторонние FRP-структуры для долгосрочного проекта, зная, что быстро меняется постоянно?
  • IBAction, вызываемый в ответ на взаимодействие кода с элементом пользовательского интерфейса
  • UISearchController - панель поиска должна быть видимой всегда
  • Как получить текущий вид из Page View Controller
  • Переопределение значений по умолчанию с помощью класса операций в Swift 3
  • iOS swift Необходимо указать исключение ClientID в google интеграции
  • Добавить уникальный обработчик завершения для каждой загрузки WKWebView
  • Установить изображение в объект, после загрузки с помощью NSURLSession
  • Восстанавливать быстрый просмотр Instagram?
  • Interesting Posts

    Есть ли более точный способ обнаружения шаровых столкновений с Sphero API?

    Ошибка SKProductsRequestDelegate

    Как безопасно удалитьObserver (Swift)

    Проблема со структурой папок студии Xamarin в проекте iOS

    Как отсортировать массив объектов (широта, долгота) на ближайшем расстоянии?

    UIWebView tel: делегат телефонной связи не призван на iPad (но он работает на iPhone)

    из zip-файла, который не способен извлекать данные из каталога документов

    Как заглушить / mock функции C для iOS TDD?

    Ориентация на конкретное устройство в симуляторе iOS с использованием Meteor

    Проверьте, отменен ли пользователь SKPaymentTransaction

    Обнаружение Silent Switch в выпуске iOS 7

    Создание шахматной настольной игры в Sprite Kit с использованием Swift?

    Как получить видимый / текущий viewcontroller в классе non-viewcontroller? стриж

    Можно ли зарегистрироваться для уведомлений Push Push для CKS без необходимости спрашивать пользователя?

    Не может индексировать значение ? с индексом типа Int

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.