0

これは私が取得している場所からの私のコードですSIGABRT error

p3=@"0123456789";
[password appendFormat: @"%C", [p3 characterAtIndex: arc4random() % [p3 length]]];

これを解決する方法

4

3 に答える 3

0

これを試して :

    NSString *p3=@"0123456789"; 
    int t = arc4random() % [p3 length];
    NSLog(@"%@",[p3 substringWithRange:NSMakeRange(t, 1)]);

    NSMutableString * password = [[NSMutableString alloc] init];
    [password appendFormat:[NSString stringWithFormat:@"%@",[p3 substringWithRange:NSMakeRange(t, 1)]]];
于 2012-05-18T12:50:23.763 に答える
0
p3=@"0123456789";
[password appendFormat: @"%C", [p3 characterAtIndex: arc4random() % ([p3 length]-1])];

0から始まるインデックスの配列の範囲を超えているようです。 -1を追加してください。

于 2012-05-18T12:42:47.997 に答える
0

乱数が 0 の場合、インデックスは文字列の長さになり、制限を超えています。したがって、次のように1つ少ない長さを使用しますindex = arc4random() % ([str length]-1;

于 2012-05-18T12:49:16.383 に答える