我在下面的代码部分收到以下“按值传递的结构参数包含未初始化的数据”:
for ( int i = 0; i < 48; i++ )
{
CGPoint posLevel;
LevelButton* pBtn;
if ( i >= 0 && i < 24 )
{
int nXX = (i % 4 + 1);
if ( i < [pBtnArray count] )
{
posLevel = ccp( (spMask.position.x - mySize.width / 2) + mySize.width / 5 * nXX,
mySize.height - mySize.height / 7 * (i / 4 + 1));
pBtn = [pBtnArray objectAtIndex:i];
if ( pBtn != nil )
{
[pBtn move:posLevel];
}
}
}
使用 xcode 添加的箭头,是否有帮助??
删除注释掉的代码后,这里的代码就不多了,所以我不明白 XCode 抛出的问题是什么。
如能帮助消除此错误,我们将不胜感激!
最佳答案
你截图中的代码是这样的
CGRect posLevel;
if (mySize.height < 568) {
posLevel = ...;
}
if (mySize.height >= 568) {
posLevel = ...;
}
[pBtn move:posLevel];
而且似乎静态分析器无法识别第一个
或者在任何情况下都会执行第二个 if block 。
蓝色箭头表示两个 if block 都未执行的流程,
在这种情况下,posLevel
将是未定义的。
您可以使用 if-else 来解决这个问题:
CGRect posLevel;
if (mySize.height < 568) {
posLevel = ...;
} else {
posLevel = ...;
}
[pBtn move:posLevel];
关于ios - 按值传递的结构参数包含未初始化的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19669097/