- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
在 UILocalNotification 中,我们像重复一样使用 NSCalendarUnitMinute
..... 但我在 iOS 10 中找不到 UserNotification doc ...如何在 iOS 10 UserNotification
中像重复一样使用 NSCalendarUnitMinute
?
这是将在晚上 8:30 安排本地通知并每隔一分钟重复一次的代码。
UILocalNotification* localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = pickerDate;
localNotification.alertBody = self.textField.text;
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.repeatInterval = NSCalendarUnitMinute;
localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
最佳答案
虽然看起来旧的通知框架对此有更好的支持,但直到我们意识到新的更好!
我遇到了类似的问题,下面是旧通知如何与新通知齐头并进的示例。
为了安全起见,这是Swift2.3
。
// Retrieve interval to be used for repeating the notification
private func retrieveRepeatInterval(repeatTemp: RepeatInterval) {
switch repeatTemp {
case .Never:
if #available(iOS 10.0, *) {
toDateComponents = NSCalendar.currentCalendar().components([.Hour, .Minute, .Day, .Month, .Year], fromDate: timeTemp!)
toDateComponents.second = 0
repeatNotification = false
} else {
repeatIntervalTemp = nil
}
case .EveryMinute:
if #available(iOS 10.0, *) {
toDateComponents.second = 0
repeatNotification = true
} else {
repeatIntervalTemp = .Minute
}
case .EveryHour:
if #available(iOS 10.0, *) {
toDateComponents = NSCalendar.currentCalendar().components([.Minute], fromDate: timeTemp!)
toDateComponents.second = 0
repeatNotification = true
} else {
repeatIntervalTemp = .Hour
}
case .EveryDay:
if #available(iOS 10.0, *) {
toDateComponents = NSCalendar.currentCalendar().components([.Hour, .Minute], fromDate: timeTemp!)
toDateComponents.second = 0
repeatNotification = true
} else {
repeatIntervalTemp = .Day
}
case .EveryWeek:
if #available(iOS 10.0, *) {
toDateComponents = NSCalendar.currentCalendar().components([.Hour, .Minute, .Weekday], fromDate: timeTemp!)
toDateComponents.second = 0
repeatNotification = true
} else {
repeatIntervalTemp = .WeekOfYear
}
case .EveryMonth:
if #available(iOS 10.0, *) {
toDateComponents = NSCalendar.currentCalendar().components([.Hour, .Minute, .Day], fromDate: timeTemp!)
toDateComponents.second = 0
repeatNotification = true
} else {
repeatIntervalTemp = .Month
}
case .EveryYear:
if #available(iOS 10.0, *) {
toDateComponents = NSCalendar.currentCalendar().components([.Hour, .Minute, .Day, .Month], fromDate: timeTemp!)
toDateComponents.second = 0
repeatNotification = true
} else {
repeatIntervalTemp = .Year
}
}
}
虽然这并不详尽,但我几乎涵盖了从一分钟到一年的所有内容。
更详细一点,
// RepeatInterval
enum RepeatInterval : String, CustomStringConvertible {
case Never = "Never"
case EveryMinute = "Every Minute"
case EveryHour = "Every Hour"
case EveryDay = "Every Day"
case EveryWeek = "Every Week"
case EveryMonth = "Every Month"
case EveryYear = "Every Year"
var description : String { return rawValue }
static let allValues = [Never, EveryMinute, EveryHour, EveryDay, EveryWeek, EveryMonth, EveryYear]
}
var repeatTemp: RepeatInterval?
var repeatIntervalTemp: NSCalendarUnit?
var timeTemp: NSDate?
var toDateComponents = NSDateComponents()
因为这对我有用,所以它可能对你们其他人也适用。如果有问题,请尝试让我知道。
而且,对于这个问题的确切解决方案,我建议如下。
(大概苹果没有想过这样的场景,但是可以处理)
NSCalendarUnitMinute
等价物。关于ios - 如何在 iOS 10 UserNotifications 上设置 NSCalendarUnitMinute repeatInterval?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37804287/
我想将重复间隔设置为用户从日期选择器中选择的值。我的应用程序中有倒计时模式类型的日期选择器。如果用户从日期选择器中选择 4 小时 15 分钟,那么我将使用以下代码设置 firedate和闹钟。 [N
好的,所以我看到几篇帖子说你不能设置 UILocalNotification重复多于或少于几个给定的选项(每分钟/小时/天/周/月等)。 但是,这些帖子都没有解决 repeatInterval 的设置
我正在发出本地通知警报 (iOS 5),它将定期(每分钟)重复其提醒,直到用户通过在 UILocalNotification 上设置 repeatInterval 来确认它实例添加到 [[UIAppl
当使用 repeatInteval 时,无论是否设置为分钟/天/小时等,通知都会一个接一个地推送。 它似乎工作正常,直到我每隔几秒测试一次,现在设置不会改回原样。有什么理由吗? var dat
我正在尝试安排重复的本地通知,并将应用程序角标(Badge)编号设置为到目前为止在任何给定时刻安排的实际通知数量。 由于显然无法为每次出现的通知设置不同的角标(Badge)编号,我只能看到 3 种解决
几个星期以来,我一直在为这个问题绞尽脑汁。 如果我将 UILocalNotification 的 repeatInterval 属性设置为非固定间隔会怎样? (非固定是指 NSWeekdayCalen
我想创建具有自定义间隔重复(例如每 20 天)的本地通知。我知道我们有 NSDayCalendarUnit、kCFCalendarUnitMonth ...但我希望将重复间隔设置为 20 天。我不想每
概览 我正在根据 UILocalNotification 的现有实例创建通知 现有实例已将 repeatInterval 设置为 NSWeekdayCalendarUnit 我想做什么 我想将repe
如何将 UILocalNotification 设置为每两天、每三天等重复...?不使用默认的 NSCalendarUnits? 最佳答案 不能重复,两天之内,Localnotification只允许
我正在尝试为一周中特定几天的提醒创建本地通知。 这就是我到目前为止所做的事情 let calender = NSCalendar.currentCalendar() let notif
如果我创建一个UILocalNotification并将其fireDate设置为过去并使用repeatInterval,那么将来下次repeatInterval到期时它会触发吗?或者 UILocalN
我在我的应用程序中安排了一批通知,一些具有重复间隔,另一些只是在特定日期触发一次。我正在使用此方法设置我的通知以创建通知: func notification(date: Date, repeatUn
在 UILocalNotification 中,我们像重复一样使用 NSCalendarUnitMinute ..... 但我在 iOS 10 中找不到 UserNotification doc ..
NSMonthCalendarUnit 的行为如何与 UILocalNotification repeatInterval 完全相关? 查找下个月的同一天? 或 查找 30 天后的日期? 例如:如果我
我是一名优秀的程序员,十分优秀!