1
私のEventKit
は、イベントがアクセスが拒否されたカレンダーに追加しようとしたときに、カレンダーへのアクセス許可を要求したいと思います。最初にアプリケーションを使用するかどうかを尋ねるだけで、設定でアクセスを拒否した場合は、アクセスを再度許可するようにユーザーに指示することはありません。助けてください。EventKitの許可
エクストラクレジット:イベントがカレンダーに既に存在するかどうかを確認し、そうであれば編集してください。これについての助けもありがとう!ここで
は私のコードです:
func addToCalendar(){
let eventStore = EKEventStore()
let startDate = NSDate()
let endDate = startDate.dateByAddingTimeInterval(60 * 60) // One hour
if (EKEventStore.authorizationStatusForEntityType(.Event) != EKAuthorizationStatus.Authorized) {
eventStore.requestAccessToEntityType(.Event, completion: {
granted, error in
self.createEvent(eventStore, title: "\(self.meal.text!)", startDate: startDate, endDate: endDate)
})
} else {
createEvent(eventStore, title: "\(self.meal.text!)", startDate: startDate, endDate: endDate)
}
}
func createEvent(eventStore: EKEventStore, title: String, startDate: NSDate, endDate: NSDate) {
let event = EKEvent(eventStore: eventStore)
event.title = title
event.startDate = startDate
event.endDate = endDate
event.calendar = eventStore.defaultCalendarForNewEvents
event.notes = "\(self.Recipe.text!) - See Meal Planning on Listacular"
do {
try eventStore.saveEvent(event, span: .ThisEvent)
savedEventId = event.eventIdentifier
} catch {
print("Denied")
}
}
ありがとうございます。私はObjCの翻訳にはあまり役に立ちません。私はそれを理解することができましたが、eventWithIdentifierを使用してイベントをチェックしたり編集したりする方法がわかりません。 –
eventWithIdentifierメソッドは、指定された識別子でストアにイベントが存在する場合、イベントを返します。そうでない場合は、nilを返します。明らかに私は間違っていた。 –
保存すると、 'savedEventId = event.eventIdentifier'をチェックするか、識別子を保存して読み込まないだけですか? –