2011-03-17 63 views

回答

1

numberWithInteger:需要你给它一个int来创建NSNumber。你给它一个对象,因为objectAtIndex:返回一个对象。

即使您在该行的对象是NSNumber或其他任何东西,您仍然需要以某种方式从中获取实际的int数据类型。

例如,如果你回来的对象是一个NSNumber,你可能有这样的事情到底:

NSNumber * myNSNum = [buttonStatsInSection objectAtIndex:row]; 
int myInt = [myNSNum intValue]; 
[NSNumber numberWithInteger:myInt]; 
+0

你能告诉我怎么样吗? – 2011-03-17 05:27:02

+0

@Stan Pak:从'objectItIndex:'返回什么类型的对象? – 2011-03-17 05:28:06

+0

@Chris Cooper:NSNumber – 2011-03-17 05:30:12

2

你为什么要创建一个新的NSNumber对象?你真的需要它的一个副本,还是你想要参考它?你打算怎么处理它?如果你想要一个副本,你可以做:

NSNumber* copy = (NSNumber*)[[buttonStatsInSection objextAtIndex:row] copy]; 

否则只是做:

NSNumber* num = (NSNumber*)[buttonStatsInSection objextAtIndex:row]; 

无论哪种方式,没有必要去通过提取int值的过程和将其转换回到一个NSNumber