Как назначить целое число из NSMutableArray - PullRequest
2 голосов
/ 12 июня 2011

Я хотел бы назначить NSInteger с помощью NSMutableArray. Есть ли способ решить эту проблему? Он не работает на симуляторе и отключается при запуске приложения.

NSInteger Section;
NSMutableArray dataSourceSection;

Section = (NSInteger)[dataSourceSection objectAtIndex:2];

Спасибо.

Ответы [ 2 ]

8 голосов
/ 12 июня 2011

A NSMutableArray хранит только объекты.NSInteger это не объект, а примитивный тип данных.Однако существует класс NSNumber, который можно использовать для хранения числовых значений внутри объектов.Вот один пример.

NSNumber *five = [NSNumber numberWithInteger:5];
NSMutableArray *numbers = [NSMutableArray array];
[numbers addObject:five];

Чтобы вернуть объект и получить целочисленное значение, используйте

NSNumber *firstNumber = [numbers objectAtIndex:0];
NSInteger valueOfFirstNumber = [firstNumber integerValue];
0 голосов
/ 12 июня 2011

вы не можете вытащить NSInteger из NSMutableArray, в основном потому, что вы не можете поместить что-либо, кроме объектов. В вашем случае NSNumber будет способом поместить числа в NSMutablearray. если вы сделаете это, вы можете легко получить свой объект, который является NSNumber, и преобразовать его в NSInteger:

NSMutableArray *array = [[NSMutableArray alloc] init];
// populate the array with NSNumbers
NSInteger number = [[array objectAtIndex:2] intValue];
...