iOS 6でEvent Kitでイベント追加には、追加のメソッド呼び出しが必要


Event Kitを使ってカレンダーにイベントを追加する場合、iOS 5までは特にユーザに同意を求めなくともできた。iOS 6からは、ユーザに同意を求める事が必須になる。

そのために、EKEventStoreにrequestAccessToEntityType:completion:というメソッドが追加された。これを呼ぶと、ユーザに同意を求めるアラートが、OS側から表示される。ここでOKをもらうと、カレンダーへのアクセスが可能になる。これを呼ばないiOS 5のソースコードでは、iOS 6でまったくカレンダーにアクセスできなくなるので注意。defaultCalendarForNewEventsでnilが返ってくる。

このメソッドは、アラートを表示するため、続きをcompletionブロックの中でやらないといけないので注意。さらに、completionブロックは、メインスレッド以外で実行されるようなので、さらに注意。iOS 5と共存するコードを書くには、ちょっと手を入れる必要あり。

  1. コメントはまだありません。

  1. トラックバックはまだありません。