7

簡単なメモ アプリケーションを作成しており、リマインダーを実装したいと考えています。ユーザーがメモを入力し、ボタンをタップすると、テキストを使用してリマインダー アプリでリマインダーが設定されます。これは可能ですか? もしそうなら、どうすればいいですか? EventKit と EKReminders に関する Apple のドキュメントを見たことがありますが、まったく役に立ちませんでした。

4

1 に答える 1

18

「カレンダーとリマインダーのプログラミング ガイド」から? 具体的には「読み書きのリマインダー」

reminderWithEventStore:クラス メソッドを使用してリマインダーを作成できます。titleプロパティとプロパティはcalendar必須です。リマインダーのカレンダーは、グループ化されたリストです。

リマインダーを作成する前に、許可を求めてください。

.h

@interface RemindMeViewController : UIViewController
{
    EKEventStore *store;
}

と、.mリマインダーへのアクセスが必要な場合:

store = [[EKEventStore alloc] init];
[store requestAccessToEntityType:EKEntityTypeReminder
                      completion:^(BOOL granted, NSError *error) {
                          // Handle not being granted permission
                      }];

実際にリマインダーを追加します。これは非同期で発生するため、この直後にリマインダーを追加しようとすると失敗します (私の経験ではアプリがクラッシュします)。

- (IBAction)addReminder:(id)sender
{
    EKReminder *reminder = [EKReminder reminderWithEventStore:store];
    [reminder setTitle:@"Buy Bread"];
    EKCalendar *defaultReminderList = [store defaultCalendarForNewReminders];

    [reminder setCalendar:defaultReminderList];

    NSError *error = nil;
    BOOL success = [store saveReminder:reminder
                                     commit:YES
                                      error:&error];
    if (!success) {
        NSLog(@"Error saving reminder: %@", [error localizedDescription]);
    }
}
于 2013-04-07T20:08:50.090 に答える