Der Benutzer kann in einem Schieber zwischen ein paar Minuten-Intervalle wählen (3, 5, 8, 10 usw.).Recurring lokaler Benachrichtigungen NSTimer mit nicht funktionieren
Da ist es nicht möglich, eine wiederkehrende lokalen Benachrichtigungen auf individueller Zeit (nur einmal in einer Sekunde, Minute, Stunde, Tag, ...).
Ich habe einen Timer erstellt, die eine neue lokale Benachrichtigung bei der gewählten Zeit schafft. Das komische daran ist, dass es auf einem physischen iPhone 6 und iPhone 5 Simulator funktioniert. Aber nicht auf einem physischen iPhone 5, alle laufen iOS 9.3.2.
Unterhalb der Code ist, der den Zeitgeber startet, die Anzahl ist ein ganzzahliger Wert von dem Schieber geholt (3, 5, 8 ...):
@IBAction func saveSettings(sender: AnyObject) {
var timer = NSTimer.scheduledTimerWithTimeInterval(Double(number*60), target: self, selector: Selector("sendNotification"), userInfo: nil, repeats: true)
print("notification interval set to \(number)")
}
func sendNotification() {
let localNotification = UILocalNotification()
localNotification.fireDate = NSDate(timeIntervalSinceNow: Double(number))
localNotification.alertBody = "This is a test body."
localNotification.timeZone = NSTimeZone.defaultTimeZone()
localNotification.soundName = UILocalNotificationDefaultSoundName
UIApplication.sharedApplication().scheduleLocalNotification(localNotification)
}
Es scheint eine Art von Hardware-Differenz zu sein zwischen iPhone 5 und 6, die diese Lösung betrifft. Was ist es und was kann ich tun, damit es bei beiden funktioniert?
Ich habe versucht, Ihre Code-Schnipsel, aber sie kompilieren nicht. Ich habe meinen Code hinzugefügt, um eine Benachrichtigung oben zu senden, und es scheint mir ähnlich zu sein. – Ramon
@Ramon deklarieren Sie Ihre lokale Benachrichtigung als eine Konstante, Sie müssen ändern "LocalNotification" zu "var localNotification" – iSashok
Oh, mein Fehler. Die Deklaration wurde in var geändert und nicht in let. Aber leider funktioniert die Lösung auf einem physischen iPhone 5 immer noch nicht: - / – Ramon