当我连续点击反向按钮时,它反复给我数据而不是一次?为什么?

时间:2011-10-13 11:12:00

标签: iphone objective-c ios ios4

- (IBAction)reverseMethod
{   
    //NSUInteger count = [array1 count];

    for( int i=[array1 count]-1;i<[array1 count];i--)
    {
        [array2 addObject:[array1 objectAtIndex:i]];
        NSLog (@"Object at index %d is: %@", 
               i, [array1 objectAtIndex: i]);


    }
    array1=array2;
    [tblMyTable reloadData];

}

2 个答案:

答案 0 :(得分:1)

如果你试图反转数组的对象,你可以这样做,

- (IBAction)reverseMethod { 

    array1 = [[array1 reverseObjectEnumerator] allObjects];
    [tblMyTable reloadData];
}

答案 1 :(得分:0)

进入reverseMethod时,您没有清除array2实例变量。每次输入reverseMethod时,都会再次添加array1对象。

在进入reverseMethod时清除array2或在reverseMethod中本地定义array2。

元素没有反转,因为for循环仅在i<[array1 count]运行时运行,直到i > 0。您希望从array1的最后一个索引迭代到第一个索引,即零。

另请参阅this answer以获得扭转NSArray的一个很好的例子。