我的iphone开发代码中只有一个警告。
NSUInteger *startIndex = 20;
此代码有效,但我有一个警告:
警告:传递'setStartIndex:'的参数1使得指针来自整数而没有强制转换
感谢您的帮助。
答案 0 :(得分:4)
警告几乎说明了一切:您正在初始化startIndex
,这是一个指针到NSUInteger
,再到20
,这是一个整数字面值。你需要分配空间来保存整数本身。
可能是你想要的更像是这样的东西:
NSUInteger *startIndex = malloc(sizeof(NSUInteger));
*startIndex = 20;
或者
static NSUInteger startIndex = 20;
NSUInteger *startIndexPtr = &startIndex;
但是考虑到var名称,你似乎也可能会混淆语义,可能真的只是想要:
NSUInteger startIndex = 20;
答案 1 :(得分:1)
NSUInteger是标量类型(定义为typedef unsigned int NSUInteger;
)。将您的代码更正为:
NSUInteger startIndex = 20;
您可以在之后直接使用它(或者如果您需要将指针传递给NSUInteger,则使用& startIndex)。