特定の時間になるとタイマーを鳴らしたいです。その手段としてcalendar型を使用したいのですが,エラー表示が出てうまくできません。具体的にエラーの部分は、以下の3つです。
エラー1
calendar.timeZone = .current
//エラー
Consecutive declarations on a line must be separated by ';'
Expected '(' in argument list of function declaration
Expected '{' in body of function declaration
Expected 'func' keyword in instance method declaration
Expected declaration
Invalid redeclaration of 'calendar()'
エラー2
let condition1 = calendar.date(from: DateComponents(year: 2021, month: 2, day: 11, hour: 9, minute: 00, second: 00))!
//エラー
Cannot use instance member 'calendar' within property initializer; property initializers run before 'self' is available
エラー3
//
if now > codition1
//エラー
Expected declaration
//
//ソースコード
import UIKit
import AVFoundation
class ViewController: UIViewController {
var audioPlayer: AVAudioPlayer! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } // 現在の日付を得る let now = Date() // タイマー起動時間を設定する var calendar = Calendar(identifier: .gregorian) calendar.timeZone = .current calendar.locale = .current let condition1 = calendar.date(from: DateComponents(year: 2021, month: 2, day: 11, hour: 9, minute: 00, second: 00))! if now > codition1 { playSound(name: "onsei") }
}
extension ViewController: AVAudioPlayerDelegate {
func playSound(name: String) {
guard let path = Bundle.main.path(forResource: name, ofType: "m4a") else {
print("音源ファイルが見つかりません")
return
}
do {
// AVAudioPlayerのインスタンス化
audioPlayer = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: path))
// AVAudioPlayerのデリゲートをセット
audioPlayer.delegate = self
// 音声の再生
audioPlayer.play()
} catch {
}
}
}
swift
1 2コード 3```import UIKit 4import AVFoundation 5 6class ViewController: UIViewController { 7 8 var audioPlayer: AVAudioPlayer! 9 10 override func viewDidLoad() { 11 super.viewDidLoad() 12 // Do any additional setup after loading the view. 13 } 14 15 // 現在の日付を得る 16 let now = Date() 17 // タイマー起動時間を設定する 18 var calendar = Calendar(identifier: .gregorian) 19 calendar.timeZone = .current 20 calendar.locale = .current 21 let condition1 = calendar.date(from: DateComponents(year: 2021, month: 2, day: 11, hour: 9, minute: 00, second: 00))! 22 23 if now > codition1 { 24 playSound(name: "onsei") 25 } 26 27 28 29} 30 31extension ViewController: AVAudioPlayerDelegate { 32 func playSound(name: String) { 33 guard let path = Bundle.main.path(forResource: name, ofType: "m4a") else { 34 print("音源ファイルが見つかりません") 35 return 36 } 37 do { 38 // AVAudioPlayerのインスタンス化 39 audioPlayer = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: path)) 40 // AVAudioPlayerのデリゲートをセット 41 audioPlayer.delegate = self 42 // 音声の再生 43 audioPlayer.play() 44 } catch { 45 } 46 } 47}