2011-12-29 118 views
1

我想通過這個按鈕可以從我的標籤單獨刪號 NSMutableString *str=(NSMutableString *)label.text;的Objective-C ....通過按鈕

str=[str replaceCharacterInRange:NSMakeRange([str length]-1,1) withString:@""];

錯誤刪除的數字從我的標籤..... "Void value not ignored as it ought to be"

回答

2

您不能僅將NSString作爲NSMutableString進行投射,並期望它是可變的。在改變它之前,你需要創建一個可變字符串。

NSMutableString *mutableString = [label.text mutableCopy]; 
[mutableString replaceCharactersInRange:NSMakeRange([mutableString length] - 1, 1) withString:@""]; 
+0

感謝...但要注意:按鈕的label.text返回標籤.... – CR7 2011-12-29 21:51:31

+0

請澄清你的問題。我無法理解你可能會遇到的其他問題。 – 2011-12-29 23:35:19

1

replaceCharacterInRange:withString:返回void,因爲它是一個修改字符串的可變操作。

要解決您的問題,您需要知道的第一件事是,您只需將它轉換爲NSMutableString即可使用,您需要使用mutableCopy

NSMutableString *str= [label.text mutableCopy]; 

//Now the next thing do not assign str 
[str replaceCharacterInRange:NSMakeRange([str length]-1,1) withString:@""]; 

... 
//And finally when you are done if you are not using ARC 
///then you need to release the string since you called `mutableCopy`. 
[str release]; 
+0

非常感謝..但按鈕不響應的行動:D – CR7 2011-12-29 21:43:11

0

使用deleteCharactersInRange:

[str deleteCharacterInRange:NSMakeRange([str length]-1,1) ])]