Создание массива целых чисел или NSUIntegers в цели C - PullRequest
2 голосов
/ 21 февраля 2011

Как создается массив для целых чисел или NSUIntegers в цели c?

Дело в том, что я хочу массив, который я могу часто менять (NSMutableArray?), Но когда я пытаюсь добавить addObject: someInt или someNSUInteger, я получаюпредупреждение о том, что «без приведения» и при выполнении этого кода происходит сбой приложения.

Какой самый быстрый способ настроить это?и я не знаю размер массива.Это должно быть динамично.

Ответы [ 3 ]

5 голосов
/ 21 февраля 2011

NSUInteger - это не что иное, как type-def-unsigned int. NSMutableArrays принимает только объекты, которые я считаю вашей проблемой. Попробуйте вместо этого использовать NSNumber .

3 голосов
/ 21 февраля 2011

Если вы просто хотите ссылку на группу чистых int-констант и хотите избежать накладных расходов на объекты NSNumber и вам не нужно изменять ваш массив, вы можете попробовать:

const int SOME_NUMBERS[] = {1,2,3};

и ссылаться на негопозже, например:

printf("\nSOME_NUMBERS[1] %i\n",SOME_NUMBERS[1]);
3 голосов
/ 21 февраля 2011
NSMutableArray *array = [NSMutableArray arrayWithObjects:[NSNumber numberWithInt:0],[NSNumber numberWithInt:1],[NSNumber numberWithInt:2], nil];

читать его обратно

int i = [[array objectsAtIndex:0] intValue];

или последовательно:

NSMutableArray *array = [NSMutableArray array];
for(int i =0; i<10; i++) {
    NSNumber *number = [NSNumber numberWithInt:i];
    [array addObject: number];
}

С современным буквальным синтаксисом вы также можете сделать:

NSMutableArray *array = [@[@0, @1, @2] mutableCopy];
int i = [array[0] intValue];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...