我该如何解决这个问题?
代码:
[NSNumber numberWithInteger:[buttonStatsInSection objectAtIndex:row]]
警告:传递'numberWithInteger:'的参数1使得指针中的整数没有强制转换
感谢。
答案 0 :(得分:2)
为什么要创建新的NSNumber对象?你真的想要它的副本,或者你只是想要它的参考?你打算用它做什么?如果你想要一份副本,你可以这样做:
NSNumber* copy = (NSNumber*)[[buttonStatsInSection objextAtIndex:row] copy];
否则只需:
NSNumber* num = (NSNumber*)[buttonStatsInSection objextAtIndex:row];
无论哪种方式,都没有必要经历提取int值并将其转换回NSNumber的过程
答案 1 :(得分:1)
numberWithInteger:
需要您int
来创建NSNumber
。你给它一个对象,因为objectAtIndex:
返回一个对象。
即使您在该行的对象是NSNumber
或其他任何内容,您仍需要以某种方式从中获取实际的int
数据类型。
例如,如果你回来的对象是NSNumber
,你最终会得到这样的东西:
NSNumber * myNSNum = [buttonStatsInSection objectAtIndex:row];
int myInt = [myNSNum intValue];
[NSNumber numberWithInteger:myInt];