EventKit を使用してアラーム付きのイベントを作成する、一見単純で教科書的なケースがあります。イライラすることに、それは機能しません。これが私がやっていることです:
EKEvent
withを作成し、[EKEvent eventWithEventStore:]
そのプロパティの束を入力します- でアラームを追加
[myEvent addAlarm:[EKAlarm alarmWithRelativeOffset:]]
- でイベントを保存
[myEventStore saveEvent:span:error:]
プロセス全体で唯一「珍しい」ことは、古い iOS バージョン (iPhone 4 では iOS4.3.3) の電話を使用していることと、使用しているすべてのカレンダーが Google カレンダーに同期されていることです。
新しいイベントの自動 30 分のアラームを設定するために Google カレンダーで設定された 1 つのカレンダー (CalendarA と呼びましょう) と、自動アラームが設定されていない別のカレンダー (CalendarB) があります。
私が見ている壊れた動作は次のとおりです。
EKAlarm
ある種のゼロ以外のrelativeOffset(5分など)をCalendarAに追加すると、カレンダーはオフセットを無視して30分に設定します- CalendarB で同じことをすると、アラームが完全に無視され、イベントにアラームがなくなります。
本当に奇妙なのは、relativeOffset を 0 に設定すると、すべてがその特殊なケースで完全にうまく機能するということです! (ゼロ オフセット アラームは、CalendarA と CalendarB の両方のケースで正しく追加されます)。ちなみに、アラームをまったく作成しない場合でも、CalendarA のイベントは 30 分のアラームを受け取ります。これに関してはどうしようもないと思います。
また、イベントの作成直後にイベントを保存し、すぐに保存済みのインスタンスにアラームを追加して再度保存しようとしました。これは役に立ちませんでした。
電話のネイティブ カレンダー アプリを使用してアラーム付きのイベントを手動で作成すると、アラームは問題なく機能するので、任意のアラームを Google カレンダーに同期できることがわかります。問題は、コードを使用してそれを行う方法です。
イベント アラームを正しく動作させるにはどうすればよいですか?