У меня есть массив с 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. Так что это немного усложняет задачу.