2011-06-12 41 views
2

我想通过使用NSMutableArray分配NSInteger有没有办法解决这个问题? 它不能在模拟器上运行,并在运行应用程序时切断。如何从NSMutableArray分配整数

NSInteger Section; 
NSMutableArray dataSourceSection; 

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

谢谢。

+2

你必须放在一个NSNumber的对象 – AmineG 2011-06-12 18:46:19

回答

8

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

数输出整数是错误的。你能建议吗? – 2011-06-13 04:17:42

0

你不能拉一个NSInteger出一个NSMutableArray的,主要是因为你不能把任何东西,而不是对象。在你的情况下,NSNumber将是将数字放入NSMutablearray的方式。如果你这样做,你可以很容易地得到您的对象,这是一个NSNumber的保持,并通过转换为NSInteger的:

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

不兼容的指针...和方法 - 未找到整数 – 2011-06-13 04:15:08

+0

对,对不起,队友只是编辑了代码,它应该是“intValue”而不是“integerValue”。你在分配和初始化数组吗? – Ramuel 2011-06-13 05:03:16