Advertisement
Guest User

Untitled

a guest
May 29th, 2015
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  1. import UIKit
  2.  
  3. enum CalculationEnum: Int {
  4. case PLUS
  5. case MINUS
  6. case TIMES
  7. case DIVIDE
  8.  
  9. func calculate(target1: Double, target2: Double) -> Double {
  10.  
  11. switch self {
  12. case .PLUS:
  13. return target1 + target2
  14. case .MINUS:
  15. return target1 - target2
  16. case .TIMES:
  17. return target1 * target2
  18. case .DIVIDE:
  19. return target1 / target2
  20. }
  21. }
  22. }
  23.  
  24. class ViewController: UIViewController {
  25.  
  26. @IBOutlet weak var numberTextField1: UITextField!
  27. @IBOutlet weak var numberTextField2: UITextField!
  28.  
  29. @IBOutlet weak var calculationType: UISegmentedControl!
  30.  
  31. @IBOutlet weak var resultLabel: UILabel!
  32.  
  33. @IBOutlet var tapGesture: UITapGestureRecognizer!
  34.  
  35. override func viewDidLoad() {
  36. super.viewDidLoad()
  37.  
  38. // ジェスチャー追加
  39. self.view.addGestureRecognizer(self.tapGesture)
  40. }
  41.  
  42. @IBAction func calculate(sender: AnyObject) {
  43.  
  44. let selectedType: Int = self.calculationType.selectedSegmentIndex
  45.  
  46. // 0除算チェック
  47. // 2番目のテキストフィールドがブランクでもエラーが出るのでそこも考慮に入れたチェック
  48. if selectedType == CalculationEnum.fromRaw(3) && isZeroDivide() {
  49. self.resultLabel.text = "割る数には0以外を入力してください"
  50. return
  51. }
  52.  
  53. let calEnum = CalculationEnum(rawValue: selectedType)
  54.  
  55. let target1 = (self.numberTextField1.text as NSString).doubleValue
  56. let target2 = (self.numberTextField2.text as NSString).doubleValue
  57.  
  58. // 計算処理
  59. var result = calEnum!.calculate(target1, target2: target2)
  60.  
  61. self.resultLabel.text = "\(result)"
  62. }
  63.  
  64. // 0除算になっているか
  65. func isZeroDivide() -> Bool {
  66. if self.numberTextField2.text.isEmpty || self.numberTextField2.text == "0" {
  67. return true
  68. }
  69. return false
  70. }
  71.  
  72. // キーボード外をタップしてナンバーパッドを閉じる
  73. @IBAction func closeNumberPad(sender: UITapGestureRecognizer) {
  74. self.view.endEditing(true)
  75. }
  76.  
  77. override func didReceiveMemoryWarning() {
  78. super.didReceiveMemoryWarning()
  79. // Dispose of any resources that can be recreated.
  80. }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement