1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
-
( NSString
*)shuffledAlphabet { NSString
*alphabet = @ "abcdefghijklmnopqrstuvwxyz" ; //
Get the characters into a C array for efficient shuffling NSUInteger
numberOfCharacters = [alphabet length]; unichar
*characters = calloc (numberOfCharacters,
sizeof (unichar)); [alphabet
getCharacters:characters range: NSMakeRange (0,
numberOfCharacters)]; //
Perform a Fisher-Yates shuffle for
( NSUInteger
i = 0; i < numberOfCharacters; ++i) { NSUInteger
j = (arc4random_uniform(numberOfCharacters - i) + i); unichar
c = characters[i]; characters[i]
= characters[j]; characters[j]
= c; } //
Turn the result back into a string NSString
*result = [ NSString
stringWithCharacters:characters length:numberOfCharacters]; free (characters); NSString
*theFourString = [result substringToIndex:4]; return
theFourString; } |