2011-11-07 2 views
0

저는 Xcode의 초보자이며 다음 코드를 검색하여 내 앱 내부에서 이벤트를 추가합니다. 하지만이 예는 시작일과 종료일을 설정하는 방법을 보여줍니다. [[NSDate alloc] init];이벤트의 특정 날짜를 EKEvent의 iCal로 설정하십시오.

원하는 날짜를 설정하기 위해 얻을 수있는 코드 예. 20-12-2012?

감사합니다.

EKEventStore *eventDB = [[EKEventStore alloc] init]; 

EKEvent *myEvent = [EKEvent eventWithEventStore:eventDB]; 

myEvent.title  = @"New Event"; 
myEvent.startDate = [[NSDate alloc]init ]; 

myEvent.endDate = [[NSDate alloc]init ]; 
myEvent.allDay = YES; 

[myEvent setCalendar:[eventDB defaultCalendarForNewEvents]]; 

NSError *err; 

[eventDB saveEvent:myEvent span:EKSpanThisEvent error:&err]; 


    UIAlertView *alert = [[UIAlertView alloc] 
          initWithTitle:@"Event Created" 
          message:@"Yay!?" 
          delegate:nil 
          cancelButtonTitle:@"Okay" 
          otherButtonTitles:nil]; 
    [alert show]; 
+0

나는 당신의 문제 4.2 xocde는 IDE (사이의 관계를 이해하지 못하고, 12 월 20 일을 설정하는 또 다른 방법 StackOverflow에서 쓸모없는 태그 또는 "xcode"를 처음 보았을 때 : P – daveoncode

답변

2

당신이 발견 한 것처럼 NSDate 객체를 중요하지 않은 날짜로 설정하는 것은 아주 드문 일입니다.

몇 가지 방법이 있습니다.

1)

체크 아웃 the documentation for [NSDateFormatter dateFromString:].

2) 여기

은 ... 그렇지 않아) 2012 년

NSCalendar * gregorian = [NSCalendar currentCalendar]; 
NSDate *currentDate = [NSDate dateWithTimeIntervalSinceReferenceDate: 0]; 
NSDateComponents *comps = [[NSDateComponents alloc] init]; 
[comps setYear: 11]; // 11 years past the reference date of 1-January-2001 
[comps setMonth: 11]; // 11 months past January 
[comps setDay:19]; // 19 days past the first day of January 
NSDate *eventDate = [gregorian dateByAddingComponents:comps toDate:currentDate options:0]; 

NSLog(@"event date is %@", [eventDate description]); 
[comps release]; // NSDateComponents was explicitly alloc'd & init'd 

myEvent.startDate = eventDate; 
mtEvent.endDate = eventDate; 
+0

매우 유용하고 대단히 감사합니다. 끝 날짜가 시작 날짜와 다른 경우 이제 endDate를 해결하려고합니다. – Clarence