简单版问题:
如何使用setPositions
字段创建EKRecurrenceRule对象?
更长版本的问题:
我在我的应用中使用以下代码创建了一个带有EKRecurrenceRule
对象的事件:
let recurrenceRule = EKRecurrenceRule(recurrenceWithFrequency: .Yearly ,
interval: 1,
daysOfTheWeek: [EKRecurrenceDayOfWeek(.Friday)],
daysOfTheMonth: nil ,
monthsOfTheYear: [8, 9, 10, 11, 12],
weeksOfTheYear: nil,
daysOfTheYear: nil,
setPositions: [-1.0],
end: nil)
在我的应用中创建事件后,内置日历中的输出如下所示:
如您所见,setPosition
的读数为零。但奇怪的是,我可以在我的应用程序中输出setPosition
对象的recurrenceRule
属性,并获得我设置为-1
的值,如下所示:
if let setPosition = recurrenceRule.setPositions?[0]{
print("event set position: \(setPosition))")
} else {
print("event set position: nil)")
}
使用内置日历创建具有完全相同递归的事件时,输出看起来符合要求:
但是当我在内置日历中创建的事件上运行与上面相同的输出代码时,setPositions
输出nil
。
答案 0 :(得分:2)
let recurrenceRule = EKRecurrenceRule(recurrenceWithFrequency: .Monthly ,
interval: 1,
daysOfTheWeek: [EKRecurrenceDayOfWeek(.Friday)],
daysOfTheMonth: nil ,
monthsOfTheYear: [8, 9, 10, 11, 12],
weeksOfTheYear: nil,
daysOfTheYear: nil,
setPositions: [-1.0],
end: nil)
每个月都会给你提供一次月份中所提及的月份#months; yearOfTheYear"。你现在拥有的是一年一次