2011-07-25 1 views
0

ユーザーインターフェイスなしで予定表にリマインダを設定したい。私はカレンダーに設定するNSDateオブジェクトを持っていることを意味します。どのようにそれを行うことができます。私はUIEventKitフレームワークを通過しました。 UIの操作が必要です。通知をUIInteractionなしでカレンダーに設定する

yrの提案を探しています。

答えて

1

幸いにも私はこのコードをアプリの1つに書いています。あなたのアプリをスイートに微調整する。 もちろん、エラーを正しく処理してください。

-(void)makeCalendarEntryWithTitle:(NSString *)title startDate:(NSDate *)startDate endDate:(NSDate *)endDate location:(NSString *)location 
{ 
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
    EKEventStore *eventStore = [[EKEventStore alloc] init]; 

    EKEvent *anEvent = [EKEvent eventWithEventStore:eventStore]; 
    anEvent.calendar = eventStore.defaultCalendarForNewEvents; 
    anEvent.title = title; 
    anEvent.startDate = startDate; 
    anEvent.endDate = endDate; 
    anEvent.location = location; 
     //alarm before 5 minutes of the event 
    anEvent.alarms = [NSArray arrayWithObjects:[EKAlarm alarmWithRelativeOffset:-300],nil]; 

    NSError *error; 
    [eventStore saveEvent:anEvent span:EKSpanThisEvent error:&error]; 

    if(error) 
    { 
     NSLog(@"Error description - %@",[error localizedDescription]); 
    } 
    [pool drain]; 
} 
+0

Thnaks lukya ...イベントの識別子を設定できますか? – iOSPawan

+0

は正確ではありませんが、一致するイベントを確認できます。 EKEventStoreのpredicateForEventsWithStartDateメソッドを使用してNSPredicateオブジェクトを作成し、eventsMatchingPredicateメソッドを使用して一致するイベントを取得する必要があります。 – lukya

+0

EKEventのeventIdentifierプロパティが見つかりました。それは私が設定したイベントを見つけるために使用することができます。迅速な対応に感謝します。 – iOSPawan

関連する問題