Mezclar aleatoriamente un NSMutableArray [Objective-C]

enero 22, 2013

El objeto NSArray de Objective-C no tiene una función propia para mezclar aleatoriamente (suffle) los elementos del array.

Con este simple código podremos desordenar un NSMutableArray aleatoriamente. Para ello nos ayudaremos de los métodos exchangeObjectAtIndex para intercambiar elementos entre si dentro del array y arc4random() para obtener un número aleatorio que utilizaremos para hacer los intercambios de elementos.

1
2
3
4
5
6
7
/* miArray es un NSMutableArray con algunos objetos */
NSUInteger count = [miArray count];
for (NSUInteger i = 0; i < count; ++i) {
	int nElements = count - i;
	int n = (arc4random() % nElements) + i;
	[miArray exchangeObjectAtIndex:i withObjectAtIndex:n];
}

Muy útil y seguro que lo utilizamos más de una vez en nuestras aplicaciones y juegos para iOS.

Fuente: StackOverflow

Tags ; , , , , , , , ,

1 comentario

    javi Ago 07, 2015

    seria posible con el arc4random sacar imágenes aleatorias?

    Responder

Escribe un comentario

Los comentarios son moderados y se utiliza rel="nofollow" para los enlaces.