2012-07-18 80 views
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:@"-"]; 
    } 
} 

這裏的錯誤:

Terminating app due to uncaught exception 'NSRangeException', reason: '-[__NSCFString characterAtIndex:]: Range or index out of bounds'

回答

2

您需要調用此之前把支票 - > [STR characterAtIndex:0];

檢查將

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

謝謝Waheeda!這工作。 – Troy 2012-07-18 05:54:21

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); 

您也可以使用此功能。

我認爲這是解決您的問題。