将 int 转换为 *NSInteger

Convert int to *NSInteger

提问人:shirjai 提问时间:10/20/2014 最后编辑:shirjai 更新时间:10/20/2014 访问量:6488

问:

使用本产品时

NSInteger *myInteger = 45 ; 

我收到警告消息,我阅读了另一篇带有相同警告的帖子,但没有找到适当的解决方案。Incompatible Integer to pointer conversion sending 'NSInteger' (aka 'int') to parameter of type 'NSInteger *' (aka 'int *')

iOS Objective-C iPhone 警告

评论

6赞 rebello95 10/20/2014
你不能给一个变量命名,它是保留的......int
0赞 iYoung 10/20/2014
将 *int 替换为一些变量名称,例如 a、x 或您想要的任何其他名称
0赞 shirjai 10/20/2014
是的。。我后来意识到了......在发布问题时没有过多关注变量名称。更关注生成的警告。已更正,避免任何混淆

答:

6赞 Andrey Chernukha 10/20/2014 #1

NSInteger不是看起来的子类,它是一个原始类型。将您的代码更改为:NSObject

NSInteger a = 45 ; 

而且(当然)不要将变量命名为 int

评论

0赞 shirjai 10/20/2014
感谢您的回复,对不起,我选错了例子。
1赞 Ersin Sezgin 10/20/2014 #2

您应该使用与 int 不同的名称,因为它是特殊基元类型整数的名称。像这样,你不能用 for、while、void...只需使用另一个名称(您应该命名它以了解它的含义),例如:

NSInteger myFirstInteger = 45;    

注意:在你以后的项目中,请用一个有意义的名字来命名你的变量,这样你就可以创建一个有意义的代码段,易于理解和改进。

评论

4赞 ttarik 10/20/2014
这是不正确的,NSInteger 不应是指针。去掉前面的星号。myFirstInteger
0赞 Ersin Sezgin 10/20/2014
没错,我编辑了我的答案。我以为我在写关于 NSNumber 的错,感谢您的更正。