/ / Czy to możliwe dzięki NSDictionary? A może powinienem użyć czegoś innego? - iphone, obiektyw-c, nsdictionary

Czy to możliwe z NSDictionary? Czy powinienem użyć czegoś innego? - iphone, cel-c, nsdictionary

To, co próbuję zrobić, to stworzyć tablicęciągi tekstowe i chcę wybrać losowy ciąg tekstowy z tej tablicy, co normalnie mógłbym zrobić za pomocą tablicy. Chciałabym jednak też móc je podzielić na kategorie, a wybierając losową, chciałabym wiedzieć, w jakiej jest kategorii i zrobić z nią coś innego, o czym decyduje kategoria, w której się znajdowała. myślałem, że mógłbym użyć klawiszy w NSDictionary do decydowania o kategoriach, tak jak ustawiając wszystkie wpisy w kategorii, aby miały ten sam klucz. Ale potem nie wiem, jak mogłem pobrać losowy z tego słownika, a potem wiedzieć, jaki był klucz. Nigdy nie używałem NSDictionary, więc niewiele o tym wiem, więc może to, co właśnie powiedziałem, nie ma żadnego znaczenia sens.

Możliwe też, że zbliżam się do tego wcałkowicie zły sposób, więc jeśli masz jakieś inne sugestie, jak zrobić to, co opisałem, byłbym na to otwarty, a dość szczegółowa odpowiedź w kodzie byłaby najlepsza, jeśli jest to możliwe.

Odpowiedzi:

0 dla odpowiedzi № 1

Po prostu wypełniłbym tablicę słownikami, tj.

{ { kategoria = Zwierzęta, imię = Kot }, { kategoria = Pojazdy, nazwa = Helikopter }, { kategoria = Żywność nazwa = Ciasto }, { kategoria = Zwierzęta, nazwa = Zebra } }

a następnie wybierz losowo z tej tablicy.

Przykład programistyczny:

theArray = [NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"Animals", @"category", @"Cat", @"name", nil],
[NSDictionary dictionaryWithObjectsAndKeys:@"Vehicles", @"category", @"Helicopter", @"name", nil],
// ...
[NSDictionary dictionaryWithObjectsAndKeys:@"Animals", @"category", @"Zebra", @"name", nil],
nil];

// ...

randomDict = [theArray objectAtIndex:(rand() % [theArray count])];
NSString *name = [randomDict objectForKey:@"name"];
NSString *category = [randomDict objectForKey:@"category"];