SIGABRT错误和应用程序崩溃

时间:2012-05-18 12:22:42

标签: iphone

这是我的代码,我来自SIGABRT error

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

如何解决此问题

3 个答案:

答案 0 :(得分:0)

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

你似乎超出了索引数组的范围,从0开始.Ad -1。

答案 1 :(得分:0)

当随机数为0时,索引将是字符串的长度,超出限制。所以jst使用的长度少于index = arc4random() % ([str length]-1;

答案 2 :(得分: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)]]];