2011-01-25 57 views
2

我在这里做错了什么? currentEvent.Title正确打印。 currentEvent.Notes始终为空......Monotouch EKEvent注意事项不被保存

public void CalendarEvents() 
{ 
    EKEventStore store = new EKEventStore(); 
    EKCalendar calendar = store.DefaultCalendarForNewEvents; 

    // Query the event 
    if (calendar != null) 
    { 
    // Add a new event 
    EKEvent newEvent = EKEvent.FromStore(store); 
    newEvent.Title = "Lunch at McDonalds"; 
    newEvent.Calendar = calendar; 
    newEvent.StartDate = DateTime.Now.Date; 
    newEvent.EndDate = DateTime.Now.Date.AddDays(4); 
    newEvent.Availability = EKEventAvailability.Free; 
    newEvent.Notes = "hello"; 
    store.SaveEvent(newEvent, EKSpan.ThisEvent, new IntPtr()); 

    // Searches for every event in the next year 
    NSPredicate predicate = store.PredicateForEvents(NSDate.Now,DateTime.Now.AddDays(360),new EKCalendar[] {calendar}); 

    store.EnumerateEvents(predicate, delegate(EKEvent currentEvent, ref bool stop) 
    { 
     // Perform your check for an event type 
     Console.WriteLine(currentEvent.Title); 
     Console.WriteLine(currentEvent.Notes); 
    }); 

    } 
} 

回答

0

由于上述内容不会按原样编译,所以API可能已更改。所以,我更新了:

store.SaveEvent(newEvent, EKSpan.ThisEvent, new IntPtr()); 

NSError error; 
store.SaveEvent(newEvent, EKSpan.ThisEvent, out error); 

否则,采用最新的MonoTouch,我得到在“应用程序输出”显示两个字符串(在设备上运行的应用程序)。

Lunch at McDonalds 
hello 

也许这是修改API修改?