Чтение случайных значений из массива

У меня есть массив с 14 строками. Я хочу показать пользователю каждую из этих 14 строк без дубликатов. Самое близкое, что я получил, - это создание массива целых чисел и перетасовка их значений, а затем чтение из массива строк с использованием одного из чисел из массива int в качестве индекса:

    //appDelegate.randomRiddles is an array of integers that has integer values randomly
     appDelegate.randomRiddlesCounter++;
     NSNumber *index=[appDelegate.randomRiddles objectAtIndex:appDelegate.randomRiddlesCounter];
     int i = [index intValue];
     while(i>[appDelegate.currentRiddlesContent count]){
        appDelegate.randomRiddlesCounter++;
        index=[appDelegate.randomRiddles objectAtIndex:appDelegate.randomRiddlesCounter];
        i = [index intValue];
                    }
hintText.text = [[appDelegate.currentRiddlesContent objectAtIndex:i] objectForKey:@"hint"];
questionText.text = [[appDelegate.currentRiddlesContent objectAtIndex:i] objectForKey:@"question"];

Но мой способ вызывает сбои и дублирование. Да, и каждый раз, когда я читаю значение из массива строк, эта строка удаляется из массива, в результате чего ее счетчик уменьшается на 1. Так что это немного усложняет задачу.

7
задан Snowman 12 August 2011 в 22:43
поделиться