2011-08-07 3 views
2

iPhone 캘린더에 일정을 추가 할 수있는 간단한 응용 프로그램을 만들고 있습니다. 그래서 저는 EKEvent의 recurrenceRule을 가지고 놀고 있습니다. 나는 (일요일 제외) 주에 모든 작업 일을 반복하는 이벤트를 만들기 위해 노력하고 있어요 경우EKRecurrenceRule (주중)

(id)initRecurrenceWithFrequency:(EKRecurrenceFrequency) 
        typeinterval:(NSInteger)interval 
        daysOfTheWeek:(NSArray *)days 
       daysOfTheMonth:(NSArray *)monthDays 
       monthsOfTheYear:(NSArray *)months 
       weeksOfTheYear:(NSArray *)weeksOfTheYear 
        daysOfTheYear:(NSArray*)daysOfTheYear 
        setPositions:(NSArray *)setPositions 
          end:(EKRecurrenceEnd*)end 

그래서 예를 들어, 나는이 초기화를 사용합니다 : 매우 긴 생성자 클래스 EKRecurrenceRule이 있습니다 : 그것이 작동하지 않는

initRecurrenceWithFrequency:EKRecurrenceFrequencyDaily 
        interval:1 
       daysOfTheWeek:[NSArray arrayWithObjects: 
           [EKRecurrenceDayOfWeek dayOfWeek:2], 
           [EKRecurrenceDayOfWeek dayOfWeek:3], 
           [EKRecurrenceDayOfWeek dayOfWeek:4], 
           [EKRecurrenceDayOfWeek dayOfWeek:5], 
           [EKRecurrenceDayOfWeek dayOfWeek:6], 
           [EKRecurrenceDayOfWeek dayOfWeek:7], nil] 
      daysOfTheMonth:nil 
      monthsOfTheYear:nil 
      weeksOfTheYear:nil 
      daysOfTheYear:nil 
       setPositions:nil 
         end:nil 

하지만, 그냥 매일 이벤트를 반복 : S 를 내가 EKRecurrenceFrequencyMonthly 사용하려고하면, 그것은 작동합니다. 매월 이벤트를 반복하지만 일요일에는 이벤트를 반복하지 않습니다. 나는 그들이 버그가있는 것 같아서 애플에게 버그를보고했다.

다른 생각이 있으십니까?

답변

0

애플 문서는 말한다 :

@method의 initRecurrenceWithFrequency : 간격 : daysOfTheWeek 클래스 : daysOfTheMonth : monthsOfTheYear : weeksOfTheYear : daysOfTheYear : setPositions : 끝 : 지정 초기화 @abstract

.

@ disciscion 모든 재귀 규칙을 작성하는 데 사용할 수 있습니다. 그러나 특정 조합은 의미가 없으므로이며 무시됩니다. 예를 들어, 일 반복에 대해 daysOfTheWeek를 전달하면 무시됩니다..

나는 우리가 매일 그것을 말하고 일요일에 말할 수 없다고 생각한다. 내가 잘못 본 경우 알려 주시기 바랍니다.

감사합니다. 주의

+1

hmm 그래, 뭔가 설명해도 바보 같아. 내가 이해할 수없는 이유는 이해가 가지 않는다. 예를 들어 매주 좋아하는 TV 프로그램을 봅니다 (일요일과 토요일을 제외한 매일). –

4

Creating A Complex Recurrence Rule

"일이. 매일 재발 규칙 외에 모든 재발 규칙의 경우, 이벤트가 발생하는. 예를 들어 요일을 나타내는 EKRecurrenceDayOfWeek 객체의 배열을 제공 할 수 있습니다 EKRuesurdayDayOfWeek 객체를 포함하는 배열에 요일 값 EKTuesday 및 EKFriday를 제공하여 매주 화요일 및 금요일에 반복되는 재귀를 만들 수 있습니다. "

즉, 월요일부터 금요일까지 사용하고 나서 매주 반복하십시오. 매일 월요일부터 금요일까지 반복하는 것은 말이되지 않습니다.

0
initRecurrenceWithFrequency:EKRecurrenceFrequencyDaily 
        interval:1 
       daysOfTheWeek:[NSArray arrayWithObjects: 
           [EKRecurrenceDayOfWeek dayOfWeek:2], 
           [EKRecurrenceDayOfWeek dayOfWeek:3], 
           [EKRecurrenceDayOfWeek dayOfWeek:4], 
           [EKRecurrenceDayOfWeek dayOfWeek:5], 
           [EKRecurrenceDayOfWeek dayOfWeek:6], 
           [EKRecurrenceDayOfWeek dayOfWeek:7], nil] 
      daysOfTheMonth:nil 
      monthsOfTheYear:nil 
      weeksOfTheYear:nil 
      daysOfTheYear:nil 
       setPositions:nil 
         end:nil 

이 코드에서는 EKRecurrenceFrequencyDaily을 사용하고 요일을 다시 지정합니다. 대신이 당신이 코드가 작동 있습니다 .. ENDDATE를 지정할 때까지 EKRecurrenceFrequencyWeekly

EKRecurrenceDayOfWeek *weekReferecne=[[EKRecurrenceDayOfWeek alloc]initWithDayOfTheWeek:2 weekNumber:0];

으로 실행하고 EKAlarm 매일 반복하도록 주 번호 0 (영)으로 EKRecurrenceDayOfWeek 객체를 만들어보십시오. 해피 코딩을해라