Disons que j'ai un tableau avec des objets, 1, 2, 3 et 4. Comment puis-je choisir un objet au hasard dans ce tableau ?
Réponses
Trop de publicités?
Pathetic Learner
Points
341
jungledev
Points
386
ObjectType *objectVarName = [array objectAtIndex:arc4random_uniform((int)(array.count - 1))];
Si vous voulez convertir cela en un int, voici la solution pour cela (utile lorsque vous avez besoin d'un int aléatoire à partir d'un tableau de nombres non séquentiels, dans le cas de l'appel aléatoire d'un enum, etc)
int intVarName = (int)[(NSNumber *)[array objectAtIndex:arc4random_uniform((int)(array.count - 1))] integerValue];
Ankit garg
Points
980
- Réponses précédentes
- Plus de réponses
0 votes
Toutes les réponses sont correctes, mais pour une solution plus récente, voir ma réponse. ici . Il utilise le
arc4random_uniform
pour éviter le biais modulo.0 votes
Ce n'est pas une réponse à cette question, mais un point intéressant - d'autres collections de Foundation (NSSet NSHashTable) ont des méthodes "anyObject" qui lisent un objet arbitraire (aléatoire) à partir du Set/HashTable. On pourrait implémenter cette méthode dans une extension de NSArray, en suivant les suggestions ci-dessous.