将字符添加到空白文本字段

时间:2012-07-18 05:38:43

标签: iphone ios xcode

我是xcode的新手,我坚持这一行动。 我试图在单击按钮时向字段添加“否定”符号或“ - ”。

当有人在字段中输入数字时,以下代码有效...它会向其添加或删除负号。

但是,如果该字段为空并且您单击该按钮则会引发错误。

以下是代码:

- (IBAction)fPosNeg:(id)sender {
    NSMutableString *str = [userFahrenheit.text mutableCopy];
    char iChar = [str characterAtIndex:0];
    if (iChar == '-') {
        userFahrenheit.text = [userFahrenheit.text substringFromIndex:1];
    } else if (iChar != '-') {
        [str insertString:@"-" atIndex:0];
        userFahrenheit.text = str;
    } else {
        userFahrenheit.text = [NSString stringWithFormat:@"-"];
    }
}

这是错误:

  

由于未捕获的异常'NSRangeException'而终止应用程序,原因:   ' - [__ NSCFString characterAtIndex:]:范围或索引越界'

2 个答案:

答案 0 :(得分:2)

你需要在调用之前进行检查 - > [str characterAtIndex:0];

检查将是

     if(![str isEqualToString:@""]) // so that if string is blank, you cant access its character at index 0

答案 1 :(得分:0)

NSMutableString *str = [NSMutableString stringWithString:@"-Test"];
char test = [str characterAtIndex:0];
NSMutableString *strFinal;
if (test  == '-') {
    strFinal = [NSMutableString stringWithString:[str substringFromIndex:1]];
}
else if (test != '-') {
    [str insertString:@"-" atIndex:0];
    strFinal=str;
}
else {
    strFinal=[NSString stringWithFormat:@"-"];
}
NSLog(@"%@",strFinal);

你也可以使用它。

我认为这可以解决你的问题。