0

这是我的代码SIGABRT error

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

如何解决这个问题

4

3 回答 3

0

当随机数为0时,索引为字符串长度,超出限制。所以只需少用一个长度作为index = arc4random() % ([str length]-1;

于 2012-05-18T12:49:16.383 回答
0
p3=@"0123456789";
[password appendFormat: @"%C", [p3 characterAtIndex: arc4random() % ([p3 length]-1])];

似乎您超出了索引数组的范围,从 0 开始。添加 -1。

于 2012-05-18T12:42:47.997 回答
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 回答