这有效:
int i, start, end;
start = m_cardArr.count - 1;
end = m_cardArr.count - 4;
NSLog(@"%i %i", m_cardArr.count - 1, m_cardArr.count - 4);
for(i = start; i > end; i--)
{
LabyrinthCard* labyCard = (LabyrinthCard*)[m_cardArr objectAtIndex:i];
if(labyCard.m_type != cardType || labyCard.m_usedForDoor)
{
return false;
}
}
这根本不进入 for 循环:
int i;
NSLog(@"%i %i", m_cardArr.count - 1, m_cardArr.count - 4);
for(i = m_cardArr.count - 1; i > m_cardArr.count - 4; i--)
{
LabyrinthCard* labyCard = (LabyrinthCard*)[m_cardArr objectAtIndex:i];
if(labyCard.m_type != cardType || labyCard.m_usedForDoor)
{
return false;
}
}
我没有更改内部数组的大小,因此使用 m_cardArr.count 作为条件应该可以。在这两种情况下,当数组中有 3 个元素时,NSLog 都会打印 2、-1。
我无法弄清楚我在这里缺少什么。