2021-05-20

代码如下:
#import “ViewController.h”

@interface ViewController ()
@end
@implementation ViewController

  • (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    }

-(IBAction)showMessage
{
UIAlertView *helloWorldAlert = [[UIAlertView alloc] initWithTitle:@“My First App” message:@“Hello, World!” delegate:nil cancelButtonTitle:@“OK” otherButtonTitles:nil];
// Display the Hello World Message
[helloWorldAlert show];
}

@end

注:在Outlet关联构建好以后,View Controller类中会新增加一行@IBOutlet声明:
Class ViewController:{
@IBOutlet weak var labelResult: UILabel;

在编译项目代码时,Swif编译器不会对@IBOutlet声明做任何特别的事情。@IBOutlet唯一的目的就是告诉Xcode这个属性会连接故事板或nib文件中的一个视图对象。也就是说,任何想要指向故事板或nib文件的属性必须被声明为@IBOutlet。

3、ViewController类建立Action关联

代码如下:
class ViewController:UIViewController(
@IBOutlet weak var labelResult:UILabel!

var firstOperand: Double =0.0
var secondOperand: Double =0.0
var decimalPointFlag: Bool =false
var isSecond: Bool =false
var operatorFlag: String =“ ”

将Connection 设置为Action的方法同步骤1。设置好后点击“connect”按钮。
在Outlet关联构建好以后,ViewController类中会新增加一行@IBOutlet声明:
Override func didReceiveMemoryWarning(){
Super.didReceiveMemoryWarning()
//Dispose of any resources that can be recreated.
}

在创建好Action以后,ViewController.swift文件应该如下面这样:
Import UIKit
Class ViewController:UIViewController{
@IBOutlet weak var labelResult:UILabel!
… …
@IBAction func buttonTap(sender:UIButton){
}
}

按照上述设置1~9按钮;

在编辑器的右侧窗口中编辑ViewController.swift文件,找到button Tap方法并在该方法中添加下面的代码:
@IBAction func buttonTap(sender:UIButton){
//labelResult中默认是0,如果开始输入数字,则先清除0
If labelResult.text == “0” || (isSecond && secondOperand == 0.0){
labelResult.text = “”
}
//将用户录入的数据添加到labelResult中
//labelResult.text = labelResult.text + sender.titleLabel
If let value = sender.titleLabel?.text{
labelResult.text = labelResult.text! + value
}

If isSecond {
secondOperand = (labelResult.text! as NSString).doubleValue
}else{
//将labelResult中的字符串转化为单精度数
firstOperand = (labelResult.text! as NSString).doubleValue
}

//在控制台中输出转换完的数值
printIn(firstOperand)

在ViewController.swift文件中添加下面关于小数点的程序代码:
Class ViewController:UIViewController{
@IBOutlet weak var labelResult:UILabel!
… …
if ifSecond{
secondOperand = (labelResult.text! As NSString).doubleValue
}else{
firstOperand = (labelResult.text! As NSString).doubleValue
}
decimalPOintFlag = !decimalPointFlag
}
}
}

实现计算器运算符相关代码:
//修改ViewController类中的button Tap
@IBAction func buttonTap(sender:UIButton){
//labelResult中默认显示0,如果开始输入数字,则先清除0
If labelResult.text == “0” || (isSecond && secondOperand == 0.0){
labelResult.text = “”
}
//将用户录入的数添加到labelResult中
labelResult.text = labelResult.text! + sender.titleLabel!.text!

      If isSecond{
          secondOperand = NSString(string : labelResult.text!).doubleValue
      }

}

//修改ViewController类中的decimalPointTap
@IBAction func decimalPointTap(){
//如果没有小数点输入则执行下面的操作
if !decimalPointFlag{
labelResult.text = labelResult.text! + “.”

     if isSecond {
        secondOperand = NSString(string : labelResult.text!).doubelValue
     }else{
        firstOperand = NSString(string : labelResult.text!).doubelValue
     }

     decimalPointFlag = !decimalPointFlag
    }

}

//为operatorTap方法添加下面的代码
@IBAction func operatorTap (sender : UIButton){
if firstOperand !=0 {
isSecond = true
decimalPointFlag = false

  Switch sender.titleLabel!.text!{
      case  “+”:
          operatorFlag = “+”
      case  “-”:
          operatorFlag = “-”
      case  “x”:
          operatorFlag = “*”
      case  “/”:
          operatorFlag = “/”
      defaul:
          operatorFlag = “ ”
  }

}
}

实现计算结果相关代码
//resultTap方法
@IBAction func resultTAp(){
//确保第二操作数有值
If isSecond {
//除数不能为 0
If oeratorFlag == “/” && secondOperand == 0{
println(“Error : 除数不能为0.”)
return
}

var result: Double = 0.0
switch operatorFlag {
case “+”:
result = firstOperand + secondOperand
case “-”:
result = firstOperand - secondOperand
case “x”:
result = firstOperand * secondOperand
case “/”:
result = firstOperand / secondOperand
defaul:
result = 0.0
}
labelResult.text = result.description
println(“第一操作数:(firstOperand)”)
println(“操作符:(opratorFlag)”)
println(“第二操作数:(secondOperand)”)
println(“结果:(result)”)
}
}

//clear方法
@IBAction func clear(){
labelResult.text = “0” //Label对象显示0
firstOperand = 0.0 //第一操作数清零
secondOperand = 0.0 //第二操作数清零
decimalPointFlag = false //小数点标记设置为假
isSecond = false //第二操作数标记设置为假
operatorFlag = “ ” // 操作符清空
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值