我想通过使用NSMutableArray分配NSInteger有没有办法解决这个问题? 在运行应用程序时,它无法在模拟器上运行并切断。
NSInteger Section;
NSMutableArray dataSourceSection;
Section = (NSInteger)[dataSourceSection objectAtIndex:2];
谢谢。
答案 0 :(得分:8)
NSMutableArray
仅存储对象。 NSInteger
不是对象,而是原始数据类型。但是,有一个类NSNumber
可用于在对象内存储数值。这是一个例子。
NSNumber *five = [NSNumber numberWithInteger:5];
NSMutableArray *numbers = [NSMutableArray array];
[numbers addObject:five];
要获取对象并检索整数值,请使用
NSNumber *firstNumber = [numbers objectAtIndex:0];
NSInteger valueOfFirstNumber = [firstNumber integerValue];
答案 1 :(得分:0)
你不能从NSMutableArray中提取NSInteger,主要是因为在你的情况下你不能放入任何东西而不是对象.NSNumber是将数字放入NSMutablearray的方法。如果您这样做,您可以轻松获取您的对象,这是一个NSNumber,并通过以下方式将其转换为NSInteger:
NSMutableArray *array = [[NSMutableArray alloc] init];
// populate the array with NSNumbers
NSInteger number = [[array objectAtIndex:2] intValue];