2
Printing description of localNotification:

{発射日 = 2015 年 8 月 5 日水曜日午前 9:00:00 インド標準時、タイム ゾーン = (null)、繰り返し間隔 = NSCalendarUnitDay、繰り返し回数 = UILocalNotificationInfiniteRepeatCount、次の発射日 = 2015 年 8 月 6 日木曜日 9 時:00:00 AM インド標準時、ユ​​ーザー情報 = (null)}

ご覧のとおり、時刻は午前 9:00:00 です。

  • Mac Time を変更して Simulator でテストしていますが、そうですか?
  • Mac の時刻を次の起動日に変更するのにも疲れましたが、まだ機能していません。
  • これらは Live デバイスで完全に動作しますか?

コードの更新

 var calendar = NSCalendar.currentCalendar()
      //  calendar.timeZone = NSTimeZone(forSecondsFromGMT: 0)
        let comp = NSDateComponents()
        //comp.timeZone = NSTimeZone(forSecondsFromGMT: 0)
        comp.day = NSDate().day()
        comp.month = NSDate().month()
        comp.year = NSDate().year()


        comp.hour = date.hour()
        comp.minute = date.minute()
        var grouptimestamp = calendar.dateFromComponents(comp)?.getCurrentTimeStemp()

        var minutes = self.getMinutestFromTimestemp(NSDate.getCurrentTimeStemp() - grouptimestamp!)

        if minutes > 59 {
            println("Missed")
        }else if minutes < -5 {
            println("Early")
        }else{
            println("Takenow")
        }

        UIApplication.sharedApplication().cancelAllLocalNotifications()
        var localNotification:UILocalNotification = UILocalNotification()
        localNotification.alertAction = "Myplan"
        localNotification.alertBody = "Woww it works!!"
        localNotification.fireDate = NSDate(timeIntervalSince1970: NSTimeInterval(grouptimestamp!))
        localNotification.repeatInterval = NSCalendarUnit.CalendarUnitDay
        UIApplication.sharedApplication().scheduleLocalNotification(localNotification)
4

1 に答える 1

0

これは、timezoneをシステムのタイムゾーンに設定していないためです。デフォルトでは、システム時間ではなく、場所に応じてタイムゾーンが設定されます。これをコードに追加してみてください:

    notification.timeZone = NSTimeZone.systemTimeZone()

これにより、通知のタイムゾーンがシステムのタイムゾーンに変更され、時間を変更すると通知が起動します。

お役に立てれば :)

于 2016-06-05T05:16:17.747 に答える