1

私の iOS アプリケーションは、カレンダーを作成し、イベントを入力し、場合によっては新しいイベントを追加します。作成したカレンダーの ID を保存し、それのみで動作します。とにかく、場合によっては、このカレンダーが削除されることがあります。たとえば、ユーザーが iCloud との同期をオフにして、既存のカレンダーを削除することを選択した場合です。カレンダーが削除されたことを知りたいので、新しいカレンダーを作成してもう一度入力できるようにします。私が試した明らかなアプローチは、アプリが保存する ID を持つカレンダーを探すことです。この ID を持つカレンダーが見つからない場合は、削除されたと見なします。しかし、このアプローチは機能しません。

ここに問題があります: アラーム付きのイベントがカレンダーに追加されると、このカレンダーはカレンダー アプリケーションだけでなく、リマインダー アプリケーションにも表示されるようになります。ユーザーがカレンダー用 iCloud をオフにし、既存のカレンダーを削除することを選択すると、カレンダー アプリのカレンダーのみが削除されます。リマインダーアプリのカレンダーは残ります。残ったカレンダーはIDが同じままなので、カレンダーの削除をIDで認識することはできません。また、このカレンダーはイベントを追加できなくなります。アプリがこのカレンダーにイベントを追加しようとすると、「そのカレンダーはそのタイプのアイテムをサポートしていません」という例外が発生します。

イベントの「実際の」カレンダーが削除されたことを確認したいと思います。削除前後のカレンダーを比較してみました。ただし、次のプロパティは変わりません: allowContentModifications、CGColor、immutable、title、type、source、subscribed、supportedEventAvailabilities、calendarIdentifier、description。

同じ問題に遭遇した人はいますか?「イベントとアラームのカレンダー」と「アラームのみのカレンダー」を区別する方法についてのアイデアはありますか?

(私が思いつく唯一のことは、テスト予定を追加しようとすることです。この操作が失敗した場合、カレンダーは「アラーム専用」であると考えてください。しかし、それは不便です)

4

0 に答える 0