处理NSNumber和NSInteger

时间:2014-03-18 10:53:05

标签: ios nsmutablearray nsinteger

以下是我用来向nsmutable数组添加数据的代码片段,现在我不确定在提取时输入什么内容,我需要整数值。 问题是我收到了关于' id'和' NSInteger'转换。什么是更好的提取方式:

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

想做类似的事情:

NSInteger itemAddressed = [self.itemsBottom objectAtIndex:itemIndex]

2 个答案:

答案 0 :(得分:3)

在本声明中

[itemsBottom addObject:@(i)];

您正在将integer值装箱到NSNumber

在这里

NSInteger itemAddressed = [self.itemsBottom objectAtIndex:itemIndex]

您尝试将NSNumber存储到NSInteger,从而收到错误。

您可以使用:

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

或简而言之:

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

答案 1 :(得分:2)

一切似乎都合理......我认为最后一行需要......

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

也许?