传递参数...从指针中取整数而不投射
问题描述:
我该如何解决这个问题?传递参数...从指针中取整数而不投射
代码:
[NSNumber numberWithInteger:[buttonStatsInSection objectAtIndex:row]]
警告:传递 'numberWithInteger:' 的参数1时将指针整数,未作铸造
感谢。
答
numberWithInteger:
需要你给它一个int
来创建NSNumber
。你给它一个对象,因为objectAtIndex:
返回一个对象。
即使您在该行的对象是NSNumber
或其他任何东西,您仍然需要以某种方式从中获取实际的int
数据类型。
例如,如果你回来的对象是一个NSNumber
,你可能有这样的事情到底:
NSNumber * myNSNum = [buttonStatsInSection objectAtIndex:row];
int myInt = [myNSNum intValue];
[NSNumber numberWithInteger:myInt];
答
你为什么要创建一个新的NSNumber对象?你真的需要它的一个副本,还是你想要参考它?你打算怎么处理它?如果你想要一个副本,你可以做:
NSNumber* copy = (NSNumber*)[[buttonStatsInSection objextAtIndex:row] copy];
否则只是做:
NSNumber* num = (NSNumber*)[buttonStatsInSection objextAtIndex:row];
无论哪种方式,没有必要去通过提取int值的过程和将其转换回到一个NSNumber
你能告诉我怎么样吗? – 2011-03-17 05:27:02
@Stan Pak:从'objectItIndex:'返回什么类型的对象? – 2011-03-17 05:28:06
@Chris Cooper:NSNumber – 2011-03-17 05:30:12