![](/img/trans.png)
[英]UIButton and UILabel display strange characters when reading from sqlite
[英]reading numbers from UIbutton
我是Objective-c和Xcode的新手。 我正在嘗試從某些按鈕獲取大量數字,但我所得到的只是一個數字。 我正在為此使用按鈕標簽。
例如:如果我想將兩個數字2 + 3相加,則效果很好。 但是當我想添加230 + 32時,它不是。
介面
- (IBAction)getnumber:(id)sender;
@property (strong, nonatomic) IBOutlet UILabel *Result;
int number;
實施部分:
-(IBAction)getnumber:(id)sender {
number = [sender tag];
Result.text = [NSString stringWithFormat:@"%i", number];
}
如果我點擊了多個按鈕,是否可以從按鈕的標簽中獲取大量信息?
先感謝您 。
您的問題來自於如何定義變量。 如果我了解您的設置正確,您會看到類似計算器的界面,並且只將按鈕的標簽設置為1、2、3,...等單個數字以指示要顯示的下一個數字?
在這種情況下,您的行number = [sender tag]
將為該按鈕的編號設置一個全局變量(還記得您的CS教授告訴您從不使用全局變量的原因嗎?這是原因!)因為當您在該按鈕的標簽上覆蓋了number
時,轉到在下一行中設置結果字符串, number
僅保存最后按下的按鈕的值。 相反,您應該這樣做。
@interface MyClass : UIViewController
@property (nonatomic, strong) IBOutlet UITextView * resultLabel;
- (IBAction)getNumber:(id)sender;
@end
和
- (IBAction)getNumber:(id)sender;
{
self.resultLabel.text = [NSString stringWithFormat:@"%@%d", self.resultLabel.text, [sender tag]];
}
這樣,每次調用getNumber:
,它將獲取標簽當前顯示的任何文本,並附加此按鈕的值。 附帶說明一下,習慣上以小寫字母開頭的Objective-C屬性名稱。
我認為你必須附加一個變量類型number
。 它應該是 -
- (IBAction)getnumber:(id)sender
{
NSInteger number = [sender tag];
Result.text = [NSString stringWithFormat:@"%i", number];
}
一世
您需要更改邏輯。
數字= 0;
如果單擊帶有數字的按鈕
數字=數字* 10 + button.tag;
其他
如果按下操作(不是=)
存儲號碼和運算符
如果=操作員被點擊
對存儲的號碼和最近輸入的號碼執行操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.