Когда я нажимаю кнопку реверса постоянно, он дает мне данные несколько раз, а не один раз?Зачем? - PullRequest
0 голосов
/ 13 октября 2011
- (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 ]

1 голос
/ 13 октября 2011

Если вы пытаетесь обратить объекты массива, вы делаете это следующим образом:

- (IBAction)reverseMethod { 

    array1 = [[array1 reverseObjectEnumerator] allObjects];
    [tblMyTable reloadData];
}
0 голосов
/ 13 октября 2011

Вы не очищаете переменную экземпляра array2 при входе reverseMethod. Каждый раз, когда вы вводите reverseMethod, объекты array1 добавляются снова.

Либо очистите массив 2 при входе reverseMethod, либо определите массив 2 локально в reverseMethod.

Элементы не меняются местами, потому что цикл for работает только тогда, когда i<[array1 count] он должен работать до i > 0. Вы хотите выполнить итерацию от последнего индекса массива1 до первого индекса, который равен нулю.

Также см. этот ответ , где приведен отличный пример обращения к NSArray.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...