このコードを考えてみましょう
@implementation NSString (Scrambling)
+ (NSString *)scrambleString:(NSString *)toScramble {
for (int i = 0; i < [toScramble length] * 15; i ++) {
int pos = arc4random() % [toScramble length];
int pos2 = arc4random() % ([toScramble length] - 1);
char ch = [toScramble characterAtIndex:pos];
NSString *before = [toScramble substringToIndex:pos];
NSString *after = [toScramble substringFromIndex:pos + 1];
NSString *temp = [before stringByAppendingString:after];
before = [temp substringToIndex:pos2];
after = [temp substringFromIndex:pos2];
toScramble = [before stringByAppendingFormat:@"%c%@", ch, after];
}
return toScramble;
}
@end
は、最も美しいコードや実行が、仕事を取得します。これを行うにはおそらく(const char *)の方法がありますが、これは私のためにうまくいきます。クイックテストでは、Macでの実行に0.001021秒の長さが表示されます。
使用方法:別の言語/擬似コード
10.7またはiOS 4.3以降でコードを実行している場合は、arc4random_uniform(maxIntIndex)が優れた乱数生成プログラムです。古いものをサポートする必要がある場合でも、arc4random()はまだ有効です。 –
ああ、私が10.5でコンパイルしていたときに、 "提案"メニューに表示されませんでした。知っておいてよかった。 –
@ HiGuy'CouleeAppsSmithご意見ありがとうございます。私は問題を抱えています:**意味論問題:クラスメソッド '+ scrambleString:'が見つかりませんでした(戻り値のデフォルトは 'id')** どのように私はそれを修正することができますどのような考え?私はそれをヘッダと実装ファイルに入れました –