前提・実現したいこと
datePicerで時間を設定して、設定した時間になったら、タイマーが作動するアプリを作っています。
設定した時間と現在の時間が同じになったら、作動するようなものを作りたいと思っています。
アラームの設定などは、まだしていません。単純に同じになるようにしてる途中です。
発生している問題・エラーメッセージ
今のところ、エラーはありません。
該当のソースコード(ViewController)
// // ViewController.swift // AlarmAPP4 import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() getNowTime2() _ = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(getNowTime2), userInfo: nil, repeats: true) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } @IBOutlet weak var myLabel: UILabel! @IBOutlet weak var datePicker: UIDatePicker! //設定した時間を代入する。 private var tempTime: String = "00:00:00" private var setTime : String = "00:00:00" @IBAction func datePicker(_ sender: AnyObject) { print("時間を決めたよ") let format = DateFormatter() format.dateFormat = "HH:mm:ss" tempTime = format.string(from: datePicker.date) print(tempTime) } @IBAction func Button(_ sender: AnyObject) { setTime = tempTime print("時間を設定したよ") } //現在時間の取得 @objc func getNowTime2()-> String { let date = NSDate() let calendar = NSCalendar(calendarIdentifier: NSCalendar.Identifier.gregorian)! let component = calendar.components([ .hour, .minute, .second ], from: date as Date) let hour = String(format: "%02d", component.hour!) let min = String(format: "%02d", component.minute!) let sec = String(format: "%02d", component.second!) let nowTime2 = (String(hour) + ":" + String(min) + ":" + String(sec)) myLabel.text = nowTime2 return nowTime2 } func myAlarm(str: String) { let str = getNowTime2() // もし現在時刻が設定時刻と一緒なら if str == setTime{ print("時間になったよ") } else { print("まだ!") } } }
試したこと
色々なサイトを調べてみて、現在時間の取得して、それをテキストに表示することができました。
そして、datePickerで時間を決めると、時間を設定できました。
現在時間と設定した時間が同じになったら、アラームがなるアプリを作っています。
補足情報(FW/ツールのバージョンなど)
時間の設定の仕方がことなっている。
今のところこれが原因ではないかと思っています。
あなたの回答
tips
プレビュー