Выберите уникальный случайный словарь из списка - PullRequest
0 голосов
/ 24 марта 2011

Я работаю над функцией, которая позволяет мне выбрать случайный словарь из списка .plist, который отображает 2 строки вопроса и ответа, который работает нормально. Однако иногда выбирается один и тот же словарь. Может ли случайная функция каждый раз показывать уникальный словарь? Спасибо.

PLIST:

<dict>
<key>questions</key>
<array>
    <dict>
        <key>question</key>
        <string>q1</string>
        <key>answer</key>
        <string>a1</string>
    </dict>
    <dict>
        <key>question</key>
        <string>q2</string>
        <key>answer</key>
        <string>a2</string>
    </dict>
    <dict>
        <key>question</key>
        <string>q3</string>
        <key>answer</key>
        <string>a3</string>
    </dict>
</array>

.m:

    NSString *path = [[NSBundle mainBundle] pathForResource:@"qs" ofType:@"plist"];
    NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithContentsOfFile:path];

    NSMutableArray *array = [dict objectForKey:@"questions"];

    int questionIndex = arc4random() %[array count];

    NSDictionary *question = [array objectAtIndex:questionIndex];
    NSString *answerStr = [question objectForKey:@"answer"];
    NSString *questionStr = [question objectForKey:@"question"];

    label1.text = answerStr;
    label2.text = questionStr;

1 Ответ

0 голосов
/ 24 марта 2011

Если вы не хотите показывать один и тот же словарь дважды, либо:

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