2010-10-23 47 views
0

大家好!我從NSMutableString使用消息deleteCharactersInRange。而且這個功能會以錯誤的方式刪除範圍。 下面是代碼的示例,工程錯誤:deleteCharactersInRange工作有問題

- (無效)btnClick { NSRange deleteRange = NSMakeRange(0,1); [valueStr deleteCharactersInRange:deleteRange]; [self ShowNumber]; }

我有一個可變的字符串:「-21.256」,當我按下按鈕btnClick它必須從開始刪除「 - 」,但它只在第5次按下時間後才做。它工作得很好,但現在沒有。請幫助,或者我可以用什麼來代替這個功能?感謝名單!

+0

的'deleteCharactersInRange'應該工作得很好,你有沒有嘗試在方法的開始和結尾添加的NSLog在,要檢查什麼'valueStr'的值在'deleteCharactersInRange'之前和之後? – DarkDust 2010-10-23 21:09:31

+0

是的!而不是一次。 – yozhik 2010-10-23 21:32:13

回答

0

我認爲這對你很有意思。 我itinialized我以這樣的方式串:

NSString *buf = nil; 
buf = [NSString stringWithFormat:@"%14.5f", myCalculator.calcValue]; 

之後,我這個字符串添加到我的NSMutableString。用繩子我也操作與FUNC的幫助:

[string deleteCharactersInRange:NSMakeRange(0, 1)]; 

但charachters只點擊的6或7周後刪除。

解決方案:

的問題是在@在此字符串 「%14.5f」我們:的 「-2.00000」 這樣的功能做她的工作以及 「-2.00000」 來代替,但它刪除空白而不是「 - 」。

因此,我們需要以這樣的方式轉換:@「%F」

0

你的代碼應該只是罰款:

NSMutableString *string = [NSMutableString stringWithString:@"-21.256"]; 
NSLog(@"%@", string); 
[string deleteCharactersInRange:NSMakeRange(0, 1)]; 
NSLog(@"%@", string); 

結果:

-21.256 
21.256 

你的問題一定是在別處。