2012-05-16 2 views
0

iCal에서 새 캘린더를 만들려고합니다. 이제 어떤 이름으로 새 캘린더를 만들 수 있습니다. 하지만 내 문제는 캘린더 목록에서 볼 수없는 로컬 캘린더를 만들려고 할 때입니다. 어떤 사람이 이것에 대해 어떤 생각을 가지고 있습니까? 모든 유형의 소스를 사용해 보았지만 이에 대한 정확한 해결책을 찾지 못했습니다.EKCalender는 캘린더를 생성하지만 iCal에서이 캘린더를 볼 수 없습니다.

미리 감사드립니다.

답변

0
NSMutableArray *arrAlarm = [[NSMutableArray alloc]init]; 
EKAlarm *alarm1 = [EKAlarm alarmWithRelativeOffset:3600]; 
EKAlarm *alarm2 = [EKAlarm alarmWithRelativeOffset:-3600]; //86400 1 day  
[arrAlarm addObject:alarm1]; 
[arrAlarm addObject:alarm2]; 
EKEventStore *eventStore = [[EKEventStore alloc] init]; 
EKEvent *ekevent = [EKEvent eventWithEventStore:eventStore]; 
ekevent.title = strname; 

NSLog(@"%@",ekevent.startDate); 

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"EEE MMM d,yyyy"]; 
NSDate *date = [dateFormatter dateFromString:strdate]; 

// Convert to new Date Format 
[dateFormatter setDateFormat:@"YYYY-MM-DD HH:MM:SS ±HHMM"]; 
NSString *newDate = [dateFormatter stringFromDate:date]; 

// dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
// [dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]]; 
[dateFormatter setDateFormat:@"hh:mm a"]; 

NSDate* firstDate = [dateFormatter dateFromString:time]; 
NSDate* secondDate = [dateFormatter dateFromString:endtime]; 

NSTimeInterval timeDifference = [secondDate timeIntervalSinceDate:firstDate]; 

// Convert to new Date Format 
[dateFormatter setDateFormat:@"HH:MM"]; 
NSString *t11 = [dateFormatter stringFromDate:firstDate]; 
NSString *t12 = [dateFormatter stringFromDate:secondDate]; 
NSDate *dt1 = [dateFormatter dateFromString:t11]; 
NSDate *dt2 = [dateFormatter dateFromString:t12];  

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"hh"]; 
NSString *hourstring = [NSString stringWithFormat:@"%@", 
         [df stringFromDate:dt1]]; 
[df setDateFormat:@"mm"]; 
NSString *minstring = [NSString stringWithFormat:@"%@", 
         [df stringFromDate:dt1]]; 
[df release]; 
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar]; 
NSDateComponents *components = [gregorian components: NSUIntegerMax fromDate: date]; 
[components setHour: [hourstring intValue]]; 
[components setMinute: [minstring intValue]]; 
[components setSecond: 00]; 

// NSDate *newDate = [gregorian dateFromComponents: components]; 
[gregorian release]; 

ekevent.startDate = date; 

ekevent.endDate = [[NSDate alloc] initWithTimeInterval:timeDifference sinceDate:date]; 
[ekevent setCalendar:[eventStore defaultCalendarForNewEvents]]; 
ekevent.alarms = arrAlarm; 
[arrAlarm release]; 
NSError *err; 
[eventStore saveEvent:ekevent span:EKSpanThisEvent error:&err]; 

이 코드를 사용하면 원하는 결과를 얻을 수 있습니다.

+0

안녕하세요. 솔루션에 대해 감사하지만 캘린더의 기본 유형에 대한 일정을 만들 수 있습니다. ios5의 새로운 기능을 사용하려고합니다. 특정 이벤트의 새 일정을 만들 수 있습니다. 그리고 아이폰의 캘린더 응용 프로그램의 캘린더 목록에서 볼 수 있습니다. 나는 그것에 문제가있다. 이벤트뿐만 아니라 캘린더도 만들 수 있습니다. 하지만 iCloude 캘린더를 활성화하면 목록에서 내 캘린더를 볼 수 없습니다. – user1988

관련 문제