gpt4 book ai didi

ios - 设置每天午夜本地通知

转载 作者:行者123 更新时间:2023-11-28 05:31:11 24 4
gpt4 key购买 nike

我正在尝试创建一个每天午夜都会出现的简单通知。这是我使用的代码:

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: UIUserNotificationType.Sound | UIUserNotificationType.Alert | UIUserNotificationType.Badge, categories: nil))

var thisDate = NSDateComponents()
thisDate.hour = 0
thisDate.minute = 0
thisDate.second = 0

var calender = NSCalendar()

var localNotification:UILocalNotification = UILocalNotification()
localNotification.timeZone = NSTimeZone.localTimeZone()
localNotification.fireDate = calender.dateFromComponents(thisDate)
localNotification.repeatInterval = .CalendarUnitDay
localNotification.alertAction = "Open App"
localNotification.alertBody = "Here is the seven o'clock notification"
localNotification.soundName = UILocalNotificationDefaultSoundName
localNotification.applicationIconBadgeNumber = UIApplication.sharedApplication().applicationIconBadgeNumber + 1
UIApplication.sharedApplication().scheduleLocalNotification(localNotification)

return true
}

我不明白为什么它不起作用,知道吗?

最佳答案

你的代码有很多问题,我会通过代码注释说明如下:

import UIKit
class ViewController: UIViewController {
@IBOutlet weak var midnightSwitch: UISwitch!
// you should declare your vars here
let localNotificationDailyAt12am = UILocalNotification()
// you should declare your funcions here
// you have to register the user notifications settings options (badge, alert and sound if desired)
func setUIUserNotificationOptions() {
UIApplication.sharedApplication().registerUserNotificationSettings(UIUserNotificationSettings(forTypes: UIUserNotificationType.Badge | UIUserNotificationType.Sound | UIUserNotificationType.Alert, categories: nil))
}
// now lets setup your notification
func notificationsOptions12am() {
// defines localtime
localNotificationDailyAt12am.timeZone = NSTimeZone.localTimeZone()
// confirms the alert dialog box action
localNotificationDailyAt12am.hasAction = true
// defines the notification alert body text
localNotificationDailyAt12am.alertBody = "The midnight notification message"
// defines the daily time interval
localNotificationDailyAt12am.repeatCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
localNotificationDailyAt12am.repeatInterval = .CalendarUnitDay
// defines the notification alert button text
localNotificationDailyAt12am.alertAction = "Open App"
// defines the default sound for your notification
localNotificationDailyAt12am.soundName = UILocalNotificationDefaultSoundName
// increments the badge counter
localNotificationDailyAt12am.applicationIconBadgeNumber = UIApplication.sharedApplication().applicationIconBadgeNumber + 1
// defines your firedate tomorrow at 12am ( note: extension NSDate tomorrowAt12am at the bottom )
localNotificationDailyAt12am.fireDate = NSDate().tomorrowAt12am
// lets set it up
UIApplication.sharedApplication().scheduleLocalNotification(localNotificationDailyAt12am)
}
override func viewDidLoad() {
super.viewDidLoad()
setUIUserNotificationOptions()
notificationsOptions12am()

}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func switched(sender: AnyObject) {
localNotificationDailyAt12am.fireDate = midnightSwitch.on ?
NSDate().tomorrowAt12am : // tomorrow at 12am
NSDate().dateByAddingTimeInterval(3155673600) // will never fire (100 years from now)
}
}
extension NSDate {
var day: Int { return NSCalendar.currentCalendar().components(.Day, fromDate: self).day }
var month: Int { return NSCalendar.currentCalendar().components(.Month, fromDate: self).month }
var year: Int { return NSCalendar.currentCalendar().components(.Year, fromDate: self).year }
var tomorrowAt12am: NSDate {
return NSCalendar.currentCalendar().dateWithEra(1, year: year, month: month, day: day+1, hour: 0, minute: 0, second: 0, nanosecond: 0)!
}
}

关于ios - 设置每天午夜本地通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28243662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com