`
hx.19890101
  • 浏览: 109204 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

初学者——Objective c 编写简单的计算器

    博客分类:
  • ios
阅读更多
首先用Interface Builder做出一个简单的计算器图形:


先再.h文件中定义好输出口,全局变量还有方法
@interface calculatorViewController : UIViewController {

	IBOutlet UITextField *textField;
	int number;
	BOOL function;
	BOOL isFlage;
	BOOL isResult;
	BOOL isAgain;
	BOOL isPress;
	NSString *num;
	NSString *nums;
	int TEMP;
}
@property(retain,nonatomic)UITextField *textField;

- (IBAction)buttionPressed:(id)sender;
- (void)plus:(id)sender:(NSString *)value;
- (void)minus:(id)sender:(NSString *)value;
- (void)multiple:(id)sender:(NSString *)value;
- (void)divide:(id)sender:(NSString *)value;
- (void)clearshow:(id)sender:(int)value;
@end


连接好输出口,按下Ctrl键并从file's Owner中拖到text框中选择好合适的textfield输出口
 
之后要注意file's Owner的链接,按住ctrl从file's Owner拖到要显示的窗口,再选中要控制按钮,再按花+2键在里面找到touch up inside,点住后面的圆点拖到file's Owner中,按钮依次照做。


再在.m文件中写入方法:首先是buttonpressed方法,里面有对按钮的识别和每个运算方法的调用。
- (IBAction)buttionPressed:(id)sender{
	
	if (!isFlage) {
		num = [sender titleForState:UIControlStateNormal];
		nums = [[NSString alloc] initWithFormat:@"%@%@",textField.text,num];
		textField.text = nums;
	}else {
		if (!isPress) {
			isFlage=FALSE;
			num = [sender titleForState:UIControlStateNormal];			
			nums = [[NSString alloc] initWithFormat:@"%@",num];
			textField.text = nums;
		}
						
	}
	[self plus:sender:nums];
	[self minus:sender:nums];›
	[self multiple:sender :nums];
	[self divide:sender :nums];
	[self clearshow:sender:number];
	
	if ([num isEqualToString:@"="]) {
		isPress=TRUE;
		isFlage=TRUE;
		switch (TEMP) {
			case 1:
				number=number+[nums intValue];
				textField.text=[NSString stringWithFormat:@"%d",number];
				isResult=TRUE;
				break;
			case 2:
				number=number-[nums intValue];
				textField.text=[NSString stringWithFormat:@"%d",number];
				isResult=TRUE;
				break;
			case 3:
				number=number*[nums intValue];
				textField.text=[NSString stringWithFormat:@"%d",number];
				isResult=TRUE;
				break;
			case 4:
				number=number/[nums intValue];
				textField.text=[NSString stringWithFormat:@"%d",number];
				isResult=TRUE;				
				break;
			default:
				break;
		}
		
	}
}


之后就是对每个运算方法的调用。这里举一个加法的例子,其他运算方法套用即可,还有一个清零的方法
- (void)plus:(id)sender:(NSString *)value{
	num = [sender titleForState:UIControlStateNormal];
	if ([num isEqualToString:@"+"]) {
		TEMP=1;
		isPress=FALSE;
		isFlage=TRUE;
		
		if (isResult) {
			function=FALSE;
		}
		if (!function) {
			number=number+[value intValue];
		}else{
			function=TRUE;
			isResult=FALSE;
			number=[value intValue];
		}
		textField.text=[NSString stringWithFormat:@"%d",number];
	}	
}

- (void)clearshow:(id)sender:(int)value{
	num = [sender titleForState:UIControlStateNormal];
	if ([num isEqualToString:@"Clear"]) {
		
		number=0;
		isFlage=FALSE;
		textField.text=[NSString stringWithFormat:@"%d",number];
	}
}

功能并不是很多,主要是运用到了一些基本的知识。自己需要注意的是字符串的连接
nums = [[NSString alloc] initWithFormat:@"%@%@",textField.text,num];

还有int型转化为string型:
textField.text=[NSString stringWithFormat:@"%d",number];

string型转化为int型:
[value intValue];

  • 大小: 23.9 KB
  • 大小: 32.5 KB
  • 大小: 30.8 KB
  • 大小: 43.8 KB
  • 大小: 83.2 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics