清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
// // ViewController.swift // Calculator // // Created by purkylin on 14-6-19. // Copyright (c) 2014年 Purkylin. All rights reserved. // import UIKit extension String { // subscript operator override subscript(index:Int) -> Character? { var cur = 0 for c in self { if cur == index { return c } } // return nil let ret:Character? return ret } } class ViewController: UIViewController { var operand1: Int = 0; // left operand var operand2: Int = 0; // right operand var operator: Character = "#"; // operator:+-*/= @IBOutlet var resultLabel : UILabel = nil // output result override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } @IBAction func onClick(sender : UIButton) { println("Click" + sender.titleForState(UIControlState.Normal)); var label = sender.titleForState(UIControlState.Normal); var c:Character = label[0]! switch c{ case "+","-","*","/": operator = c case "=": var result = 0 switch operator { case "+": result = operand1 + operand2 case "-": result = operand1 - operand2 case "*": result = operand1 * operand2 case "/": result = operand1 / operand2 default: break } resultLabel.text = "\(result)" // clear status operator = "#" operand1 = result operand2 = 0 break default: if operator=="#" { let tmp = label.toInt()! operand1 = operand1*10 + tmp resultLabel.text = "\(operand1)" } else { let tmp = label.toInt()! operand2 = operand2*10 + tmp resultLabel.text = "\(operand2)" } } } // 其实这个ACTION可以不单独提出来,都放到ONCLICK函数里处理 @IBAction func clearClick(sender : UIButton) { operand1 = 0 operand2 = 0 operator = "#" resultLabel.text = "0" } }