학교 공부/iOS 프로그래밍

실습 4-8 (교재 P.124)

_빌런 2022. 4. 4. 17:16
//
//  ViewController.swift
//  DatePicker
//
//  Created by 맥 on 2022. 3. 28..
//  Copyright © 2022년 맥. All rights reserved.
//

import UIKit

class ViewController: UIViewController {
    let timeSelector: Selector = #selector(ViewController.updateTime)
    let interval = 1.0
    var cnt = 0
    var alarmTime = ""
    
    @IBOutlet var lblCurrentTime: UILabel!
    @IBOutlet var lblPickerTime: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        Timer.scheduledTimer(timeInterval: interval, target: self, selector: timeSelector, userInfo: nil, repeats: true)
    }

    @IBAction func changeDatePicker(_ sender: UIDatePicker) {
        
        let datePickerView = sender
        
        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy-MM-dd \nHH시 mm분 EEE"
        lblPickerTime.numberOfLines = 2
        lblPickerTime.text = "선택 시각 : " + formatter.string(from: datePickerView.date)
        
        formatter.dateFormat = "hh:mm aaa"
        alarmTime =  formatter.string(from: datePickerView.date)
    }
    
    @objc func updateTime() {
        // lblCurrentTime.text = String(cnt)
        // cnt = cnt + 1

        let date = NSDate()
        
        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy-MM-dd \nHH시 mm분 ss초 EEE"
        lblCurrentTime.numberOfLines = 2
        lblCurrentTime.text = "현재 시각 : " + formatter.string(from: date as Date)
        
        formatter.dateFormat = "hh:mm aaa"
        let currentTime = formatter.string(for: date as Date)
        
        if (alarmTime == currentTime) {
            view.backgroundColor = UIColor.green
        }
        else {
            view.backgroundColor = UIColor.white
        }
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

 

let과 var의 차이

 

둘 다 변수이지만, let은 const와 같은 기능이다. let에 들어간 값은 재선언(변경)할 수 없다.