Ab iOS 9 und OS X 10.11 können Sie die neuen GameplayKit-Klassen verwenden, um Zufallszahlen auf verschiedene Arten zu generieren.
Sie haben vier Quelltypen zur Auswahl: eine allgemeine Zufallsquelle (unbenannt, bis auf das System, um auszuwählen, was sie tut), linear kongruent, ARC4 und Mersenne Twister. Diese können zufällige Ints, Floats und Bools erzeugen.
Auf der einfachsten Ebene können Sie eine Zufallszahl aus der integrierten Zufallsquelle des Systems wie folgt generieren:
NSInteger rand = [[GKRandomSource sharedRandom] nextInt];
Das ergibt eine Zahl zwischen -2.147.483.648 und 2.147.483.647. Wenn Sie eine Zahl zwischen 0 und einer Obergrenze (exklusiv) möchten, verwenden Sie Folgendes:
NSInteger rand6 = [[GKRandomSource sharedRandom] nextIntWithUpperBound:6];
GameplayKit verfügt über einige praktische Konstruktoren, die für die Arbeit mit Würfeln integriert sind. Zum Beispiel können Sie einen sechsseitigen Würfel wie folgt würfeln:
GKRandomDistribution *d6 = [GKRandomDistribution d6];
[d6 nextInt];
Außerdem können Sie die zufällige Verteilung mithilfe von Dingen wie gestalten GKShuffledDistribution
.
arc4random_uniform(x)
wie unten von @yood beschrieben. Es befindet sich auch in stdlib.h (nach OS X 10.7 und iOS 4.3) und bietet eine gleichmäßigere Verteilung der Zufallszahlen. Verwendungint r = arc4random_uniform(74);