簡體   English   中英

EKCalender創建日歷,但在iCal中看不到它

[英]EKCalender creates calendar but can't see it in iCal

我正在嘗試在iCal中創建一個新日歷。 現在,我可以使用一個新名稱創建日歷了。 但是我的問題是,當我嘗試創建本地日歷時,在日歷列表中看不到它。 有人對此有任何想法嗎? 我嘗試使用所有類型的源,但無法找到確切的解決方案。

先感謝您。

   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];

嘗試使用此代碼,您將獲得所需的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM