在循环中设置某天的通知

时间:2015-12-22 05:34:14

标签: ios swift

我想显示本地通知,就像我在这里设置它一样,如下图所示:

enter image description here

当我点击"创建故事"按钮,我会发送故事'通知的属性。

我的故事有一些这样的属性:

@NSManaged var remindeAtHour: Int
@NSManaged var remindeAtMinute: Int
@NSManaged var remindeAtDaysOfWeek: [Bool] // -> This means that from
// Monday to Sunday, if it true, it is set, if it false, it not be set. 

这是我的RemindNotification类代码:

import Foundation
import UIKit

class RemindNotification {

  var timerNotification = NSTimer()

  func notification(story: Story) {
    let timeInterval = NSTimeInterval(story.remindeAtHour * 3600 + story.remindeAtMinute * 60)
    let notification = UILocalNotification()
    notification.alertAction = "Title"
    notification.alertBody = "It's time to take a photo"
    notification.fireDate = NSDate(timeIntervalSinceNow: timeInterval)
    UIApplication.sharedApplication().scheduleLocalNotification(notification)
    timerNotification.invalidate()
  }
}

我已经使用此代码显示本地通知。

enter image description here

但是我想设置它的日期,所以它可以循环显示我设置的日期的时间通知。例如,我设定时间为8:30,我选择某一天"周一,周三,周五,周日和#34;现在是周二12:35,所以周三8:30,它将显示通知,等等...周一下周将一次又一次地显示。怎么做??

1 个答案:

答案 0 :(得分:0)

您可以按照Apple文档中的说明设置最多64个本地通知。

  

Apple Doc说:设备上的每个应用仅限于64个预定的本地通知。系统会丢弃超出此限制的预定通知,仅保留最快发送的64个通知。重复通知被视为单个通知。

<强>解决方案

如果没有预定通知,则在用户打开应用程序时设置接下来5-6天的通知。使用以下方法查找预定通知,该方法返回所有预定通知的列表,并根据它安排您的下一个通知。

NSArray *arrScheduledNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications]

在应用启动时执行此操作。

详细了解Local Notifications here

<强>交替

安排日历活动。它允许您在任何时间点设置事件数量。虽然它不与应用程序相关联,但它会向您显示提醒。如果满足您的要求,您可以选择它。

有关Calendar event is here

的更多详情