0
私は見回しましたが、答えが見つかりませんでした。設定した時間に毎日コードを実行するにはどうすればよいですか? Swift
誰もが、NSTimer
を使わずに12:00に毎日コードブロックを実行する方法を知っていますか?
私は見回しましたが、答えが見つかりませんでした。設定した時間に毎日コードを実行するにはどうすればよいですか? Swift
誰もが、NSTimer
を使わずに12:00に毎日コードブロックを実行する方法を知っていますか?
これを行うためにディスパッチソースを設定できます。正午までの残り時間を開始時間として取得し、間隔を24時間ごとに設定します。次のようなものがあります。
let startTime = NSCalendar.currentCalendar().nextDateAfterDate(NSDate(), matchingHour: 12, minute: 0, second: 0, options: .MatchNextTime) ?? NSDate()
let startDelta = startTime.timeIntervalSinceNow * NSTimeInterval(NSEC_PER_SEC)
let periodicSource = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_main_queue())
dispatch_source_set_timer(periodicSource, dispatch_walltime(nil, Int64(startDelta)), 60 * 60 * 24 * NSEC_PER_SEC, NSEC_PER_SEC)
dispatch_source_set_event_handler(periodicSource) {
print("bing bong!")
}
dispatch_resume(periodicSource)
可視の通知なしでローカルデバイス通知をスケジュールできます - 発生したときにコードが実行されますか? – brandonscript
サイレントプッシュ通知 –
ブランソンその仕事は? – FredInn