使用setPositions创建EKRecurrenceRule

时间:2016-08-31 04:14:00

标签: ios swift ekrecurrencerule

简单版问题:

如何使用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)

在我的应用中创建事件后,内置日历中的输出如下所示:

enter image description here

如您所见,setPosition的读数为零。但奇怪的是,我可以在我的应用程序中输出setPosition对象的recurrenceRule属性,并获得我设置为-1的值,如下所示:

if let setPosition = recurrenceRule.setPositions?[0]{
     print("event set position: \(setPosition))")
} else {
     print("event set position: nil)")
}

使用内置日历创建具有完全相同递归的事件时,输出看起来符合要求:

enter image description here

但是当我在内置日历中创建的事件上运行与上面相同的输出代码时,setPositions输出nil

1 个答案:

答案 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"。你现在拥有的是一年一次