OSX / Swift / Monitor Core Data / Schreibaktionen in Core Data nachvollziehen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ich habe mir die Zeit genommen und MCDans Quellen durchgelesen. Eigentlich dachte ich auch, dass ich das Unterkapital ACTOR verstanden haben.

    Nun habe ich den Beispielcode genommen und diesen so modifiziert das keine Fehlermeldungen erscheinen und er ordnungsgemäß startet.

    Nun er läuft auch - nur erhalte ich kein Output. Was übersehe ich hier? Café hilft auch nicht mehr. :huh:

    C-Quellcode

    1. import Foundation
    2. actor TemperatureLogger {
    3. let label: String
    4. var measurements: [Int]
    5. private(set) var max: Int
    6. init(label: String, measurement: Int) {
    7. self.label = label
    8. self.measurements = [measurement]
    9. self.max = measurement
    10. }
    11. }
    12. func doAsyncWork() async {
    13. print("Doing async work")
    14. let logger = TemperatureLogger(label: "Outdoors", measurement: 25)
    15. await print(logger.max)
    16. }
    17. func doRegularWork() {
    18. Task {
    19. await doAsyncWork()
    20. }
    21. }
    22. doRegularWork()
    Alles anzeigen
  • Wolf schrieb:

    mal in playground kopiert, laufen lassen. funktioniert tatenlos…

    noch ein Hinweis, sowohl actor als auch async/await sind Sprachkonstrukte von Swift 5.5 (welches im Herbst raus kam)
    • In den Quellen die MCDan genannt hat, wird gleich zu Beginn darauf hingewiesen, dass es um Sprachelemente der Swift-Version 5.5 handelt.
    • Es handelt sich um Sourcecode der im von mir im Playground ausgeführt wird.
    • Einzig das Fazit, dass es bei Dir ohne Probleme läuft, ist für mich ein Hinweis, dass ich das Thema wohl doch verinnerlicht habe.
    Warum es bei mir keine Ausgabe erzeugt, verstehe ich nicht wirklich. Wenn es zu keiner Erleuchtung kommt, werde ich wohl den Mac neu aufsetzen. Hmmm - erinnert mich an Windowszeiten. 8|

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von OSXDev ()

  • MCDan schrieb:

    Evtl. verwendet ihr nur eine andere Version von Playground, Xcode und/oder macOS? :/
    Hmmm, möglich ist alles. Dachte eigentlich, dass ich da auf einem aktuellen Stand bin.

    macOS: 12.1
    Xcode: 13.2.1

    Kann man für Playground die zu verwendende Swift-Version separat einstellen? Falls, ja - wo stellt man diese ein?


    Nachtrag:
    Wenn ich im Terminal die Swift-Version abfrage, erhalte ich folgende Angabe: Apple Swift Version 5.5.2 (swiftlang-1300.0.47.5 lang-1300.0.29.30)

    Nachtrag 2:
    Ich habe mich nun mal mit einem administrativen Account angemeldet und siehe da - ich erhalte eine Ausgabe. Seltsam, da mein Developer-Account eigentlich alle Rechte inne hat.

    Mein eigentliches Problem löst dies zwar nicht, im Grunde genommen hat es nun eine weitere Ungereimtheit ans Licht befördert. Irgendwie seltsam ...

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von OSXDev () aus folgendem Grund: Nachtrag: Abfrage Swift Version Nachtrag 2: Ergänzung

  • OSXDev schrieb:

    ...

    Nachtrag 2:
    Ich habe mich nun mal mit einem administrativen Account angemeldet und siehe da - ich erhalte eine Ausgabe. Seltsam, da mein Developer-Account eigentlich alle Rechte inne hat.

    Mein eigentliches Problem löst dies zwar nicht, im Grunde genommen hat es nun eine weitere Ungereimtheit ans Licht befördert. Irgendwie seltsam ...

    Mein Entwickler-Account habe ich nun aus der Gruppe _developer entfernt. Einen Neustart durchgeführt und ihn wieder der Gruppe hinzugefügt. Der gepostete Actor-Sourcecode läuft nun einwandfrei. 8)

    Waren wohl irgendwelche Rechte verschoben - warum und wie auch immer. Mein eigentliches Problem mit der Zwischenspeicherung der Daten in Core Data hat sich zwar nicht gelöst, aber nun erhalte ich wenigsten einen Laufzeitfehler. Ist zumindest ein Hinweis, dass ich da irgendwo ein await Befehl vergessen habe. :huh:

    Nachtrag:
    Habe die Lösung gefunden. Es hat tatsächlich ein await-Befehl gefehlt. ^^ Warum die App jedoch dann ohne Probleme auf dem iMacPro lief verstehe ich noch immer nicht. ?(

    Jedenfalls mal ein Dank an alle, die mich dieser Lösung näher gebracht haben. :thumbsup:

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von OSXDev () aus folgendem Grund: Nachtrag: Lösung