Xcode7, iOS9 использование неразрешенного идентификатора 'EKSpanThisEvent'
У меня проблема с этим кодом
import UIKit
import EventKit
let eventStore = EKEventStore()
eventStore.requestAccessToEntityType(EKEntityType.Event, completion: { (success, accessError) -> Void in
if accessError != nil {
print("Calendar Access Error: \(accessError)")
return
}
let event = EKEvent(eventStore: eventStore)
event.title = self.detailItem!.title
event.allDay = true
event.startDate = self.detailItem!.date
event.endDate = self.detailItem!.date
event.calendar = eventStore.defaultCalendarForNewEvents
var saveToCalendarError: NSError?
let success: Bool
do {
//Swift2: use of unresolved identifier 'EKSpanThisEvent'
try eventStore.saveEvent(event, span: EKSpanThisEvent)
success = true
} catch var error as NSError {
saveToCalendarError = error
success = false
} catch {
fatalError()
}
компилятор не компилируется, и ошибка "использование неразрешенного идентификатора" EKSpanThisEvent ""
Я надеюсь, что кто-то может помочь!
3 ответа
Решение
В Swift 2 / Xcode 7 много перечислений было изменено для согласованности
try eventStore.saveEvent(event, span: .ThisEvent)
Лучше, если вы справитесь с ошибками saveEvent
:
do {
try store.saveEvent(event, span: .ThisEvent)
} catch let specError as NSError {
print("A specific error occurred: \(specError)")
} catch {
print("An error occurred")
}
Подробнее об обработке ошибок в Swift: https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html
Для Swift 3
do {
try self.eventStore.save(event, span: .thisEvent)
} catch let specError as NSError {
print("A specific error occurred: \(specError)")
} catch {
print("An error occurred")
}