繰り返し起動できる HomeKit の HMTimerTrigger を作成しようとしています。最初は、ユーザーが毎週、毎日などのいずれで発射するかを決定できるシステムから始めましたが、現在、ユーザーが特定の曜日のみを発射するように指定するシステムに切り替えることにしました (たとえば、ちょうど月曜日と金曜日など)。これが私のコードの現在の状態です:
let calendar = NSCalendar.currentCalendar()
let selectedDate = self.selectedDate
let dateComp = calendar.components([NSCalendarUnit.Second, .Minute, .Hour, .Day, .Month, .Year, .Era] , fromDate: selectedDate)
let fireDate = calendar.dateWithEra(dateComp.era, year: dateComp.year, month: dateComp.month, day: dateComp.day, hour: dateComp.hour, minute: dateComp.minute, second: 0, nanosecond: 0)
var recurrenceComp:NSDateComponents?
if let repeating = triggerInterval["repeating"] as? Bool {
if repeating {
recurrenceComp = NSDateComponents()
if let intervalUnit = triggerInterval["unit"] as? String {
if let trig = triggerInterval["integer"] as? String {
let trigInt = Int(trig)
switch intervalUnit {
case "minute":
recurrenceComp?.minute = trigInt!
case "hour":
recurrenceComp?.hour = trigInt!
case "day":
recurrenceComp?.day = trigInt!*7
case "week":
recurrenceComp?.day = trigInt!
case "month":
recurrenceComp?.month = trigInt!
case "year":
recurrenceComp?.year = trigInt!
default:
break
}
}
}
}
}
私の質問は、NSDateComponents を使用して必ずしも連続していない特定の曜日のみを指定できる方法を知っている人はいますか? ありがとうございます。