目標は、長さ NSString chars を生成し、各文字列を配列に割り当てることです。正しい結果を得るためにアルゴリズムで何をする必要があるのか に行き詰まっています。これがサンプルです。得られる結果は、26 個の異なる文字列が追加されるのではなく、同じランダムに生成された文字列が配列に 26 回追加されることです。
26 の異なる NSString を宣言し、アルゴリズムからの各結果を各文字列に割り当てることを考えましたが、それは非効率的です。助けてくれてありがとう。
NSMutableString *string = @"expert";
NSUInteger strLength = [string length];
NSString *letterToAdd;
NSString *finishedWord;
NSMutableString *randomString = [NSMutableString stringWithCapacity: strLength];
NSMutableArray *randomArray = [[NSMutableArray alloc] init];
NSArray *charArray = [[NSArray alloc] initWithObjects: @"a", @"b", @"c", @"d",
@"e", @"f", @"g", @"h", @"i", @"j", @"k", @"l", @"m",
@"o", @"p", @"q", @"r", @"s", @"t", @"u", @"v", @"w",
@"x", @"y", @"z", nil];
for (int a = 0; a < 26; a++) {
for (int i = 0; i < strLength; i++) {
letterToAdd = [charArray objectAtIndex: arc4random() % [charArray count]];
if([randomString length] < strLength) {
[randomString insertString: letterToAdd atIndex: i];
}
finishedWord = randomString;
}
[randomArray addObject: finishedWord];
}
NSLog(@"Random Array count %i, contents: %@", [randomArray count], randomArray);