У меня есть функция, которая выдает ошибку, в этой функции у меня есть закрытие inside a
, которое мне нужно, чтобы выдать ошибку из обработчика завершения. Это возможно ?
Вот мой код до сих пор.
enum CalendarEventError: ErrorType {
case UnAuthorized
case AccessDenied
case Failed
}
func insertEventToDefaultCalendar(event :EKEvent) throws {
let eventStore = EKEventStore()
switch EKEventStore.authorizationStatusForEntityType(.Event) {
case .Authorized:
do {
try insertEvent(eventStore, event: event)
} catch {
throw CalendarEventError.Failed
}
case .Denied:
throw CalendarEventError.AccessDenied
case .NotDetermined:
eventStore.requestAccessToEntityType(EKEntityType.Event, completion: { (granted, error) -> Void in
if granted {
//insertEvent(eventStore)
} else {
//throw CalendarEventError.AccessDenied
}
})
default:
}
}
eventStore.
и изменить его внутри вместо того, чтобы выдавать ошибку, а затем проверить логическое значение снаружи и создать исключение. - person Arc676   schedule 19.10.2015completion
вызывается асинхронно, то это невозможно, потому чтоinsertEventToDefaultCalendar
вернется до вызоваcompletion
. - person mixel   schedule 19.10.2015