简体   繁体   English

处理NSNumber和NSInteger

[英]Handle NSNumber and NSInteger

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. 以下是我用来向nsmutable数组添加数据的代码段,现在我不确定在提取时将其强制转换为哪种类型,我需要整数值。 Problem is that I am getting warnings of 'id' and 'NSInteger' conversion. 问题是我收到“ id”和“ NSInteger”转换的警告。 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]

In this statement 在此声明中

[itemsBottom addObject:@(i)];

you are boxing the integer value to NSNumber . 您将integer数值装箱为NSNumber

While here 在这里

NSInteger itemAddressed = [self.itemsBottom objectAtIndex:itemIndex]

you are tried to store NSNumber to NSInteger, hence getting the error. 您试图将NSNumber存储到NSInteger,从而收到错误。

You can use : 您可以使用 :

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

Or in short : 或简而言之:

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

All seems reasonable...I would think the last line would need to be... 一切似乎都合理...我想最后一行应该是...

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

Maybe? 也许?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM