Необходимо отправить напоминание каждый день в установленное время. Время устанавливается в формате от 1 до 24 часов с использованием UIStepper. Модифицированные код, но он по-прежнему не работает, НЕ ПРИХОДЯТ УВЕДОМЛЕНИЯВремя UILocalNotification с использованием UIStepper
var hour = 0.0
let notification = UILocalNotification()
@IBOutlet weak var remindStepper: UIStepper!
@IBOutlet weak var remindLabel: UILabel!
@IBOutlet weak var remindSwitch: UISwitch!
в viewDidLoad()
remindStepper.wraps = true
remindStepper.value = hour
remindStepper.minimumValue = 0
remindStepper.maximumValue = 24
if NSUserDefaults.standardUserDefaults().objectForKey("hour") != nil { hour = NSUserDefaults.standardUserDefaults().objectForKey("hour") as! Double }
if NSUserDefaults.standardUserDefaults().objectForKey("remindOnOff") != nil { remindOnOff = NSUserDefaults.standardUserDefaults().objectForKey("remindOnOff") as! Bool
}
if remindOnOff == true {
remindSwitch.on = true
} else {
remindSwitch.on = false
}
remindLabel.text = "\(Int(hour)):00"
Затем создайте
func setEveryDayNotification(){
let calendar = NSCalendar.currentCalendar()
var dateFire = NSDate()
let components = calendar.components(.Hour,fromDate: dateFire)
components.calendar = calendar
components.hour = Int(hour)
dateFire = calendar.dateFromComponents(components)!
notification.alertTitle = "alert title"
notification.alertBody = "alert body"
notification.soundName = UILocalNotificationDefaultSoundName
notification.alertAction = "Run the workout"
notification.timeZone = NSTimeZone.defaultTimeZone()
notification.fireDate = components.date
notification.repeatInterval = NSCalendarUnit.Day
UIApplication.sharedApplication().scheduleLocalNotification(notification)
}
@IBAction func remindStepper(sender: UIStepper) {
NSUserDefaults.standardUserDefaults().setObject(Int(sender.value), forKey: "hour")
NSUserDefaults.standardUserDefaults().synchronize()
remindLabel.text = "\(Int(sender.value).description):00"
UIApplication.sharedApplication().cancelLocalNotification(notification)
remindOnOff = false
remindSwitch.on = false
NSUserDefaults.standardUserDefaults().setBool(remindOnOff, forKey: "remindOnOff")
}
@IBAction func remindSwitch(sender: UISwitch) {
if remindSwitch.on {
setEveryDayNotification()
remindOnOff = true
NSUserDefaults.standardUserDefaults().setBool(remindOnOff, forKey: "remindOnOff")
} else {
remindOnOff = false
UIApplication.sharedApplication().cancelLocalNotification(notification)
NSUserDefaults.standardUserDefaults().setBool(remindOnOff, forKey: "remindOnOff")
}
}
Вы можете помочь мне реализовать свою задачу правильно? Спасибо –
@ArturSkachkov вы пробовали код, который я написал, что должно вам помочь? – HardikDG
уведомление срабатывает один раз. дополнительно измените значение часа и ничего не получится :( –