从整数生成指针而不进行强制转换
我的 iPhone 开发代码中有一个简单的警告。
NSUInteger *startIndex = 20;
这段代码可以工作,但我有一个警告:
警告:传递“setStartIndex:”的参数 1 使指针来自整数而不进行强制转换
感谢您的帮助。
i have a simply warning in my iphone dev code.
NSUInteger *startIndex = 20;
This code work, but i have a warning :
warning: passing argument 1 of 'setStartIndex:' makes pointer from integer without a cast
Thanks for your help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
警告几乎说明了一切:您正在初始化
startIndex
,它是一个指向NSUInteger
、20
的指针 ,这是一个整数文字。您需要分配空间来保存整数本身。可能是你想要的更像是这样的:
或者也许
但是考虑到 var 名称,看起来你可能也混淆了语义,并且可能真的只是想要:
The warning pretty much says it all: you are initialising
startIndex
, which is a pointer toNSUInteger
, to20
, which is an integer literal. You need to allocate the space to hold the integer itself somewhere.It may be that what you want is something more like this:
Or perhaps
But given the var name, it seems you may also be muddling the semantics a bit, and probably really just want:
NSUInteger 是标量类型(定义为 typedef unsigned int NSUInteger;)。将您的代码更正为:
您可以随后直接使用它(或者如果您需要传递指向 NSUInteger 的指针,则与 &startIndex 一起使用)。
NSUInteger is a scalar type (defined as
typedef unsigned int NSUInteger;
). Correct your code to:You can use it directly afterwards (or with &startIndex if you need to pass a pointer to NSUInteger).