我是 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]
会将全局变量设置为该按钮的号码(还记得您的计算机科学教授告诉您永远不要使用全局变量吗?这是一个原因!)当您在下一行中设置结果字符串时,您只是用此按钮的标签覆盖了 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 属性名称通常以小写字母开头。
关于ios - 从 UIbutton 读取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16138263/