2014-10-20 89 views
2

当使用这种int转换成* NSInteger的

NSInteger *myInteger = 45 ; 

我得到的警告信息Incompatible Integer to pointer conversion sending 'NSInteger' (aka 'int') to parameter of type 'NSInteger *' (aka 'int *') 我已阅读使用同样的警告其他职位,但没有找到妥善的解决办法。

+6

你不能命名一个变量'int',它保留... – rebello95 2014-10-20 07:37:48

+0

替换* int与一些变量名称,如a,x或任何其他你想要的 – iYoung 2014-10-20 07:59:11

+0

是的..我后来意识到..没有在发布问题的同时非常注意变量名称。更注重产生的警告。已纠正它,以避免任何混淆 – shirjai 2014-10-20 08:33:14

回答

6

NSInteger不是NSObject的子类,因为看起来它是原始类型。你的代码更改为:

NSInteger a = 45 ; 

和(当然)不命名变量int

+0

感谢您的response.sorry我不好的选择错误的例子。 – shirjai 2014-10-20 08:29:30

1

你应该使用不同的名称,然后诠释,因为它是一种特殊的基本类型整数的名称。就像你不能用的名字像名称的变量,同时,虚空......只需使用另一个名字(你应该命名它来了解它持有),如:

NSInteger myFirstInteger = 45;  

注:在你未来的项目,请用一个有意义的名称命名变量,以便创建一段易于理解和改进的有意义的代码。

+4

这是不正确的,一个NSInteger不应该是一个指针。在myFirstInteger之前删除星号。 – ttarik 2014-10-20 08:10:17

+0

没错,我编辑了我的答案。感谢纠正,我以为我在写关于NSNumber的错误。 – 2014-10-20 08:23:56