Я работаю над функцией, которая позволяет мне выбирать случайный словарь из .plist, который отображает 2 строки вопроса и ответа, который отлично работает. Однако иногда выбирается один и тот же словарь. Возможно ли, чтобы случайная функция каждый раз отображала уникальный словарь? Спасибо.
Список:
<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 ответ
Если вы не хотите показывать один и тот же словарь дважды:
- отслеживать словари, которые вы показали. Если вы выберете один во второй раз, попробуйте еще раз
- когда вы выбираете словарь, удалите его из массива вариантов.
Похожие вопросы
Новые вопросы
iphone
НЕ ИСПОЛЬЗУЙТЕ этот тег, если вы не обращаетесь конкретно к iPhone и / или iPod touch от Apple. Для вопросов, не зависящих от оборудования, используйте тег [ios]. Больше тегов, которые нужно рассмотреть, это [xcode] (но только если вопрос касается самой IDE), [swift], [target-c] или [cocoa-touch] (но не [cocoa]). Пожалуйста, воздержитесь от вопросов, касающихся iTunes App Store или iTunes Connect. Если вы используете C #, пометьте [mono].