私の質問は私が以下にリンクしたのと同じ質問ですが、 Objective-Cの毎週特定の日に通知を設定する必要がありますが、月の日を気にしません
Fire a notification at a specific day and time every week
問題は、私は、月の月の日と年を指定し、しかし、私ならばしていないので、私が使用している日付は、デフォルトの1月1日であるということです私のアプリが来年や翌月には機能しないので、役に立たないと指定しました
私が望むものはとてもシンプルです。毎週日曜日に通知を設定します
が、それは任意の日曜日または土曜日に動作するはずですので、年や月を指定することは現実的ではない(例えば)
私はすでに多くのことを試してみた私を助けてください:(let calendar = NSCalendar.currentCalendar()
let components = NSDateComponents()
components.hour = 2
components.minute = 54
components.weekday = 6
var newDate = calendar.dateFromComponents(components)
let notification = UILocalNotification()
notification.fireDate = newDate
notification.alertBody = "Swipe to unlock"
notification.alertAction = "You've got a class soon!"
notification.soundName = UILocalNotificationDefaultSoundName
notification.userInfo = ["CustomField1": "w00t"]
notification.timeZone = NSTimeZone.localTimeZone()
notification.repeatInterval = NSCalendarUnit.WeekOfYear
UIApplication.sharedApplication().scheduleLocalNotification(notification)
更新日:
月曜日にのみ動作することはわかっていますが、後で修正できます。 ここで問題となるのは、時と分を0に設定してから現在の時刻を返し、私が望む時間を設定する方法がわかりません。
var pickerDate = NSDate()
print(pickerDate)
var dateComponents: NSDateComponents? = nil
var calendar = NSCalendar.currentCalendar()
dateComponents = calendar.components(NSCalendarUnit.NSWeekdayCalendarUnit, fromDate: pickerDate)
var firstMondayOrdinal = 9 - dateComponents!.weekday
dateComponents = NSDateComponents()
dateComponents!.day = firstMondayOrdinal
dateComponents?.hour = 0
dateComponents?.minute = 0
var firstMondayDate = calendar.dateByAddingComponents(dateComponents!, toDate: pickerDate, options: NSCalendarOptions(rawValue: 0))
dateComponents = NSDateComponents()
dateComponents?.weekdayOrdinal = 1
let notification = UILocalNotification()
notification.fireDate = firstMondayDate
notification.alertBody = "Swipe to unlock"
notification.alertAction = "You've got a class soon!"
notification.soundName = UILocalNotificationDefaultSoundName
notification.userInfo = ["CustomField1": "w00t"]
notification.timeZone = NSTimeZone.localTimeZone()
notification.repeatInterval = NSCalendarUnit.WeekOfYear
UIApplication.sharedApplication().scheduleLocalNotification(notification)
あなたの質問は、特定の時刻に次の日曜日に砲火を設定する方法ですか? –
http://stackoverflow.com/a/32518640/2303865 –
mmm毎週特定の曜日に通知を出したいとします。たとえば、毎週月曜日の午前8時に通知を出したいとします。私は日付のコンポーネントでそれを行うことができますが、誰かが来年に私のアプリを開いている場合、それは過去のものになります火災の日付 –