gpt4 book ai didi

iphone - 如何以编程方式在 iPhone 上创建将同步到 iCal 的新日历

转载 作者:行者123 更新时间:2023-12-03 19:02:21 25 4
gpt4 key购买 nike

我正在寻找一种以编程方式在 iPhone 设备上创建新日历的方法。我一直在查看事件工具包,它清楚地说明了如何在日历中创建新事件,并且还有一种在代码中收集所有日历的便捷方法,我找不到的是如何创建一个新事件保存到设备。

任何想法'

最佳答案

检查这个kal repository用于以编程方式创建 iPhone 日历,与 iCal 相同

检查此方法以编程方式创建事件:

-(void)initCalendar {

// An array of 1 dictionary object, containing START and END values.
NSMutableArray* pvDict = [[NSMutableArray alloc] initWithContentsOfURL:[NSURL URLWithString:PV_URL ]];

// Check if the private view event already exists in the default calendar.
// Then set the calendar button state.

// Get a entry point to the Calendar database.
self.store = [[EKEventStore alloc ] init ];

// Get an array of all the calendars.
NSArray *calendars = store.calendars;

// Get the default calendar, set by the user in preferences.
EKCalendar *defaultCal = store.defaultCalendarForNewEvents;

// Find out if this calendar is modifiable.
BOOL isDefaultCalModifiable = defaultCal.allowsContentModifications ;

// Create an event in the default calendar.

self.event = [ EKEvent eventWithEventStore:store ];

self.event.title = CHELSEA_SPACE ;
self.event.location = CHELSEA_ADDRESS ;

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyy-MM-dd HH:mm:ss.S"];

NSString *startString = [[ pvDict objectAtIndex:0] objectForKey:@"starts" ];
NSDate *dateStart = [dateFormatter dateFromString:startString];

NSString *endString = [[ pvDict objectAtIndex:0] objectForKey:@"ends" ];
NSDate *dateEnd = [dateFormatter dateFromString:endString];

self.event.startDate = dateStart;
self.event.endDate = dateEnd;

self.event.calendar = defaultCal ;

// Alternative code to add 2.5 hours to start time.
// [[NSDate alloc] initWithTimeInterval:9000 sinceDate:event.startDate];

// Search for events which match this date/time start and end.
// Compare the matched events by event TITLE.

NSPredicate *predicate = [store predicateForEventsWithStartDate:event.startDate
endDate:event.endDate calendars:calendars];

NSArray *matchingEvents = [store eventsMatchingPredicate:predicate];

self.calendarButton.enabled = NO;

if( ! isDefaultCalModifiable ) {
// The default calendar is not modifiable
return ;
}

if ( [ matchingEvents count ] > 0 ) {

// There are already event(s) which match this date/time start and end.
// Check if this event is the PV

EKEvent *anEvent;
int j;

for ( j=0; j < [ matchingEvents count]; j++) {

anEvent = [ matchingEvents objectAtIndex:j ] ;
if([ CHELSEA_SPACE isEqualToString: anEvent.title ]) {
// PV event already exists in calendar.
return;
}
}
[ anEvent release ];
}

self.calendarButton.enabled = YES;

[ pvDict release ];
}

-(void)addEventToCalendar:(id)sender {

NSError *error;
BOOL saved = [self.store saveEvent:self.event span:EKSpanThisEvent error:&error];

NSLog(@"Saved calendar event = %@\n", (saved ? @"YES" : @"NO"));
self.calendarButton.enabled = NO;

}

关于iphone - 如何以编程方式在 iPhone 上创建将同步到 iCal 的新日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3384682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com