一切正常,除了后退按钮有一个我不太了解的缺陷。
我找到了解决方法,但我想了解为什么代码的行为如此怪异。
数组末尾有一个nil对象。

应该是但不能工作的代码(索引超出范围):

- (IBAction)back-button:(id)sender
{
    currentArrayIndex--;

    if (currentArrayIndex == 0)
    {
        currentArrayIndex = [array count];
    }
}


这是固定但看似错误的代码:

- (IBAction)back-button:(id)sender
{

    currentArrayIndex--;

    if (currentArrayIndex == -1)
    {
        currentArrayIndex = [array count] -1;
    }
    else if (currentArrayIndex == -2)
    {
        currentArrayIndex = [array count];
    }
}


现在从数学和程序上讲都没有意义。

“下一个”按钮的代码非常简洁明了,并且可以循环使用。

最佳答案

最高索引是count - 1,因为数组是从零开始的索引。因此,最低的索引是0,如果要以相反的顺序在数组上循环,则第二个代码是正确的(可以删除else if部分)。最后但并非最不重要的一点是,确保currentArrayIndex是一个有符号整数,否则它将永远不会成为-1

10-08 01:05