1

Following is a code snippet i am using to add data to nsmutable array, now I am not sure on what to type cast it on while extracting, i need integer value. Problem is that I am getting warnings of 'id' and 'NSInteger' conversion. What could be better way of extracting:

    self.itemsBottom = [NSMutableArray array];
    for (int i = 20; i < 30; i++)
    {
        [itemsBottom addObject:@(i)];
    }

wanna do something like:

NSInteger itemAddressed = [self.itemsBottom objectAtIndex:itemIndex]
Firdous
  • 4,624
  • 13
  • 41
  • 80
  • possible duplicate of [How to convert NSNumber to NSInteger](http://stackoverflow.com/questions/2355088/how-to-convert-nsnumber-to-nsinteger) – Martin R Mar 18 '14 at 10:55

2 Answers2

3

In this statement

[itemsBottom addObject:@(i)];

you are boxing the integer value to NSNumber.

While here

NSInteger itemAddressed = [self.itemsBottom objectAtIndex:itemIndex]

you are tried to store NSNumber to NSInteger, hence getting the error.

You can use :

NSInteger itemAddressed = [[self.itemsBottom objectAtIndex:itemIndex] integerValue];

Or in short :

NSInteger itemAddressed = [self.itemsBottom[itemIndex] integerValue];
Anoop Vaidya
  • 46,283
  • 15
  • 111
  • 140
2

All seems reasonable...I would think the last line would need to be...

NSInteger itemAddressed = [self.itemsBottom[itemIndex] integerValue];

Maybe?

Cocoadelica
  • 3,006
  • 27
  • 30