我问过 Xamarin,他们说我应该使用 EventIdentifier
而不是 CalendarItemIdentifier
- 但是,当您按照他们所说的方式查找事件时(startDate,endDate,和日历)
日历项没有 EventIdentifier
属性,我不确定如何转换它或我应该在那里做什么。
这是我正在做的一个基本示例。问题是,当我通过标识符查找事件时,它不存在,因为它是 CalendarItemIdentifier
而不是 EventIdentifier
public string CreateDefaultEvent ()
{
// Creating an event for demonstration purposes
// This is the sample code from your website to create an event programmatically
EKEvent newEvent = EKEvent.FromStore ( Application.AppEventStore );
// set the alarm for 10 minutes from now
newEvent.AddAlarm ( EKAlarm.FromDate ( DateTime.Now.AddMinutes ( 10 ) ) );
// make the event start 20 minutes from now and last 30 minutes
newEvent.StartDate = DateTime.Now.AddMinutes ( 20 );
newEvent.EndDate = DateTime.Now.AddMinutes ( 50 );
newEvent.Title = "Get outside and do some exercise!";
newEvent.Notes = "This is your motivational event to go and do 30 minutes of exercise. Super important. Do this.";
newEvent.Calendar = Application.AppEventStore.DefaultCalendarForNewEvents;
NSError e;
Application.AppEventStore.SaveEvent ( newEvent, EKSpan.ThisEvent, out e );
Console.WriteLine ("Event Saved, ID: " + newEvent.CalendarItemIdentifier);
return newEvent.CalendarItemIdentifier;
}
public string RetrieveCreatedEvent (string _eventIdentifier)
{
// We will just return the event's notes to see if we got a valid event
EKEvent savedEvent = Application.AppEventStore.EventFromIdentifier (_eventIdentifier);
return savedEvent.Notes;
}
提前致谢!
最佳答案
当你去获取事件时,你必须这样做:
NSPredicate query = Util.MyEventStore.PredicateForEvents (Util.DateTimeToNSDate(startDate), Util.DateTimeToNSDate(endDate), null);
//EKCalendarItem[] eventArrary = Util.MyEventStore.EventsMatching (query);
EKEvent[] eventArrary = Util.MyEventStore.EventsMatching (query);
我不知道为什么我最初把它变成了 EKCalendarItem[]
但是,你必须使用 EKEvent
关于iphone - Monotouch EventKit - 无法检索 EventIdentifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15696959/