Swift 3 Core Data - NSExpression forFunction: "summe:" löst Fehler aus ("Wörterbuch konnte nicht in Tag umgewandelt werden")

Ich habe Tage und Aufgaben. Ein Tag hat viele Aufgaben. Jede Aufgabe hat ein Attribut namens "Punkte" und ich möchte alle Punkte der Aufgaben des aktuellen Tages zusammenfassen. Ich habe den folgenden Code verwendet (in dem Buch Core Data by tutorials, Version swift 2) und versucht, ihn für swift 3 zu ändern (ich habe auch ein Prädikat hinzugefügt, aber das ist nicht wichtig). Aber wenn ich diesen Code ausführe, erhalte ich diesen Fehler:

Wert vom Typ "NSKnownKeysDictionary1" (0x10d02d328) konnte nicht in "MyProject.Day" umgewandelt werden.

Was mache ich falsch

    // sum current day's task points 
    let sumRequest: NSFetchRequest<Day> = Day.fetchRequest()
    sumRequest.resultType = .dictionaryResultType

    sumRequest.predicate = NSPredicate(format: "SELF == %@", argumentArray: [Project.Days.current])

    let expressionDescription = NSExpressionDescription()
    expressionDescription.name = "sumOfPoints"
    expressionDescription.expression = NSExpression(forFunction: "sum:", arguments: [NSExpression(forKeyPath: "tasks.points")])
    expressionDescription.expressionResultType = .integer16AttributeType

    sumRequest.propertiesToFetch = [expressionDescription]

    do {
        let results = try managedObject.fetch(sumRequest) as! [NSDictionary] // Here's the line that causes the error
        print("DEN:", results)
    } catch let error as NSError {
        print("DEN:", error.localizedDescription)
    }

Ich denke, es hat etwas mit dieser Zeile zu tun:

let sumRequest: NSFetchRequest<Day> = Day.fetchRequest()

Hier sage ich ausdrücklich, dass das Ergebnis ein Tag sein wird (ich glaube, das ist neu in Swift 3?). Aber ich weiß nicht, wie ich das ändern könnte.

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage