我已经混合并匹配了教程中的代码,并且:
@IBAction func scheduleLocal(sender: AnyObject) {
var getCurrentYear = dateFire.year
var getCurrentMonth = dateFire.month
var getCurrentDay = dateFire.day
dateFire.year = getCurrentYear
dateFire.month = getCurrentMonth
dateFire.day = getCurrentDay
dateFire.hour = 15
dateFire.minute = 1
dateFire.timeZone = NSTimeZone.defaultTimeZone()
var calender: NSCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
var date: NSDate = calender.dateFromComponents(dateFire)!
guard let settings = UIApplication.sharedApplication().currentUserNotificationSettings() else { return }
if settings.types == .None {
let ac = UIAlertController(title: "Can't schedule", message: "Either we don't have permission to schedule notifications, or we haven't asked yet.", preferredStyle: .Alert)
ac.addAction(UIAlertAction(title: "OK", style: .Default, handler: nil))
presentViewController(ac, animated: true, completion: nil)
return
}
let notification = UILocalNotification()
notification.fireDate = date
notification.alertBody = "Hey you! Yeah you! Swipe to unlock!"
notification.alertAction = "be awesome!"
notification.soundName = UILocalNotificationDefaultSoundName
notification.userInfo = ["CustomField1": "w00t"]
UIApplication.sharedApplication().scheduleLocalNotification(notification)
}
之前,我使用此代码从现在开始以时间间隔发送本地通知,但我希望能够将其设置为特定时间..
我希望在3:01发出通知,这是我的代码。 没有通知。
我错过了什么?
编辑:当打印出“日期”时,它正在打印:一个奇怪的日期,时间是提前四个小时。我的模拟器有正确的时间,我已经尝试过系统和默认时区。
我也尝试将我的测试设置在手动设置年/月/日的地方,然后设置4小时前的小时,这样它就给了我正确的时间,正确打印的时间但仍然没有当那个时间到来时发射通知。