Wie bekomme ich alle Termine aus einem Kalender? (Swift)

Ich bin ein bisschen neu in Swift, aber sehr interessiert. Ich möchte alle Ereignisse, die ich in einem Kalender mit dem Namen "Arbeit" gespeichert habe, abrufen und in einer Tabellenansicht anzeigen. Ich habe nach solchen Fragen gesucht, aber der dort gezeigte Code scheint ein bisschen alt zu sein und nicht wirklich zu funktionieren. Wie mache ich das? Die Tabellenansicht sollte den Titel, das Start- und das Enddatum anzeigen können. Ist es möglich, wie alle Titel in einem Array von Strings zu bekommen. Gleich mit Anfang und Ende? Wäre super ein paar Tipps zu bekommen!

Update: Ich habe die Variablen außerhalb der Klasse deklariert. Jetzt habe ich einen Code ausprobiert, der so aussieht, dank einer Antwort, die ich hier erhalten habe, aber ich bekomme keine Zellen, die irgendetwas anzeigen ?! Und ja, ich habe bereits ein testEvent in meinem Arbeitskalender auf dem Simulator erstellt.

    override func viewDidAppear(animated: Bool) {

    let eventStore = EKEventStore()

    switch EKEventStore.authorizationStatusForEntityType(.Event) {
    case .Authorized:
        readEvents()
    case .Denied:
        print("Access denied")
    case .NotDetermined:

        eventStore.requestAccessToEntityType(.Event, completion: { (granted: Bool, NSError) -> Void in
            if granted {
                self.readEvents()

            }else{
                print("Access denied")
            }



        })
    default:
        print("Case Default")
    }
    self.tableView.reloadData()
}



func readEvents() {



    let eventStore = EKEventStore()
    let calendars = eventStore.calendarsForEntityType(.Event)

    for calendar in calendars {
        if calendar.source.title == "Work" {
            let oneMonthAgo = NSDate(timeIntervalSinceNow: -30*24*3600)
            let oneMonthAfter = NSDate(timeIntervalSinceNow: +30*24*3600)


            let predicate = eventStore.predicateForEventsWithStartDate(oneMonthAgo, endDate: oneMonthAfter, calendars: [calendar])

            var events = eventStore.eventsMatchingPredicate(predicate)

            for event in events {

                titles.append(event.title)
                startDates.append(event.startDate)
                endDates.append(event.endDate)


            }

        }
    }


}

// MARK: - Table view data source



override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete implementation, return the number of rows
    return titles.count
}


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)


    cell.textLabel!.text = titles[indexPath.row]
    cell.detailTextLabel!.text = "From: \(startDates[indexPath.row]) Until: \(endDates[indexPath.row])"
    // Configure the cell...

    return cell
}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage