计算器App开发

作者 汪小祯 日期 2016-07-08
App
计算器App开发

暑假打算入Ios的坑了,查询了网上一些学习方法,打算以斯坦福大学cs193p教程为参考,进行学习,以下的斯坦福cs193p自己的自学过程,以及课程内容计算器的制作

main

准备工作

1.首先打开Xcode,新建一个Ios工程
2.为了工程的简洁性,我们将不必要的文件移至新的文件夹内
1

数字输入模块

在我看来Ios的开发很像Android的开发,所以我很多东西都能类比,比如Main.storyboard文件就很像Andorid开发中xml文件,ViewController.swift文件很像Andorid开发里面的类
1.首先在Main.storyboard文件中拖出10个Button控件和1个Label控件。
2
2.然后在iOS开发中,我们可以采取按住Control拖取至ViewController.swift文件中的方式写事件。
3.声明Label控件,然后写个Button按钮的Action事件
4.代码如下

import UIKit
class ViewController: UIViewController {
@IBOutlet weak var dieplay: UILabel!
var a:Bool=false
@IBAction func appendDight(sender: UIButton) {
let dight = sender.currentTitle!
if a{
dieplay.text=dieplay.text!+dight
}
else{
dieplay.text=dight
a=true
}
}
}

5.此时运行已经可以看到Labei控件会显示Button控件中点击的数字

计算模块

这部分比较麻烦,建议直接看cs193的视频一步步的学习
1.在这里比较注意的几点应该是复制控件以后要取消之前关联的事件
2.新加代码如下

@IBAction func operate(sender: UIButton) {
let operation=sender.currentTitle!
if a{
enter()
}
switch operation{
case "X":performOpertion{$0 * $1}
case "÷":performOpertion{$1 / $0}
case "✚":performOpertion{$0 + $1}
case "−":performOpertion{$1 - $1}
default:break
}
}
func performOpertion(operation:(Double,Double) ->Double) {
if operandStack.count >= 2 {
displayValue=operation(operandStack.removeLast(),operandStack.removeLast())
enter()
}
}
var operandStack: Array<Double>=Array<Double>()
@IBAction func enter() {
a=false
operandStack.append(displayValue)
print("operandStack=\(operandStack)")
}
var displayValue:Double{
get{
return NSNumberFormatter().numberFromString(dieplay.text!)!.doubleValue
}
set{
dieplay.text="\(newValue)"
a=false
}
}