2013-10-28 60 views
0

Beginnersquestion:NSMutableString append string

有三個按鈕代表字母a,e和i。 按下按鈕時,相應的字母應顯示在標籤中。 因此,每按一次按鈕,標籤就會說「aei」。 附上我的代碼如下。當現在按三次按鈕時,標籤 只顯示最後按下的按鈕字母。 我在做什麼錯? 謝謝你的幫助!


#import "SecondViewController.h" 


NSMutableString *stringLabel; 


@interface SecondViewController() 
@end 

@implementation SecondViewController 




-(IBAction)type_a:(id)sender;{ 
[stringLabel appendString: @"a"]; 
NSLog(@"stringLabel is set to: %@", stringLabel); 
label.text = stringLabel; 


} 

-(IBAction)type_e:(id)sender;{ 
[stringLabel appendString: @"e"]; 
NSLog(@"stringLabel is set to: %@", stringLabel); 
label.text = stringLabel; 


} 

-(IBAction)type_i:(id)sender;{ 
[stringLabel appendString: @"i"]; 
NSLog(@"stringLabel is set to: %@", stringLabel); 
label.text = stringLabel; 


} 

回答

0

我不知道你在哪裏初始化您的NSMutableString,但也許你缺少這樣的:

stringLabel = [[NSMutableString alloc] init]; 

把這些代碼在viewDidLoad,它應該可以工作,因爲你的代碼是正確的。

另外,你在哪裏設置標籤和viewController之間的連接?我看不到

@property (weak, nonatomic) IBOutlet UILabel *label; 

檢查過

+0

謝謝你,我的標籤顯示連接錯誤。 再次進行連接,現在它工作! 再次感謝! – user2928201

0

在您的文章,每次要指定值使用

label.text = stringValue 

標記通過擦除舊值

這裏你有來連接舊分配的新值字符串與新的stringValue ..

將標籤的以前的值存儲在一個NSMutableString像

NSMutableString *previosValue = label.text; 

現在串聯的buttonValue到PREVIOUSVALUE並添加標記