0

我是 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:]:范围或索引超出范围”

4

2 回答 2

2

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

检查将是

     if(![str isEqualToString:@""]) // so that if string is blank, you cant access its character at index 0
于 2012-07-18T05:42:51.263 回答
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);

你也可以使用这个。

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

于 2012-07-18T06:01:35.967 回答