iOS本地同时通知但不同日期有不同的提醒消息

标签 ios xcode swift xcode6 uilocalnotification

我想要一个每日报价的示例代码,它可以通过给定的不同消息/报价获取一年中每一天的本地通知

最佳答案

更好的办法是在循环中为每一天添加不同的 UILocalNotificaiton ,创建一个引用数据,比如说今天,然后循环 365 次,并在每次迭代中添加一天的 timeInterval 将它们注册到应用程序,诸如此类像这样

var messages:[String] = [/*Add messages here*/]
        var date = NSDate()
        let dayTimerInterval:NSTimeInterval = (60 * 60 * 26)
        date = date.dateByAddingTimeInterval(dayTimerInterval)

    for i in 0..<messages.count
    {
        let localNotif = UILocalNotification()
        localNotif.alertBody = messages[i]
        localNotif.fireDate = date
        date = date.dateByAddingTimeInterval(dayTimerInterval)
        UIApplication.sharedApplication().scheduleLocalNotification(localNotif)
    }

还有另一种方法,您可以通过一个通知来做到这一点,当本地通知触发并且用户打开应用程序时,您可以通过获取其引用来更改其消息......但为此您需要运行应用程序。您可以通过不同的方式做到这一点

1.您的应用收到本地通知

func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification)
        {
            notification.alertBody = "new message"
        }

您的应用程序通过本地通知启动

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
            // Override point for customization after application launch.
            if let options = launchOptions {
                // Do your checking on options here
                let notif:UILocalNotification = options[UIApplicationLaunchOptionsLocalNotificationKey] as! UILocalNotification!
                notif.alertBody = "new alert boxy"
            }
            return true
        }

但是在这两种情况下,您都有可能错过它们,因为这两种情况不能每次都保证,因此每天添加不同的通知。

关于iOS本地同时通知但不同日期有不同的提醒消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32184832/

相关文章:

iOS 模拟器在 Xcode 6.3 中无法运行

ios - Firebase 错误地显示已删除的数据/Swift 3/Xcode 8.2

ios - 应用内购买不起作用

ios - 根据条件设置rootViewController

ios - 为什么我在 Interface Builder 中设置的单元格高度实际上并未成为应用程序/模拟器中的高度?

ios - 如何为分段 Controller 添加多个选择?

ios - 这段代码是否从 objective-c 正确地转换为 swift?

ios - 使用 NSMutableAttributedString 为字符串中的单词添加颜色

ios - Xcode 不会在开发人员门户上自动创建应用程序 ID

iOS:使用 UIBezierPath bezierPathWithOvalInRect 绘制清晰的圆圈: