Umgebungsvariable definieren

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

  • Umgebungsvariable definieren

    Hallo zusammen,

    ich würde gern in einer Class eine Umgebungsvariable definieren und in einer weiteren Anweisung innerhalb der Class direkt nutzen wollen.

    In meinem Beispiel geht es um die variable "playersEntityName".
    Den Inhalt dieser Variablen möchte ich dann gern direkt in der folgenden Anweisung für eine Funktion nutzen.

    Leider kann ich nicht auf die zuvor definierten Variablen "referenzieren" .....

    Vielleicht bin ich völlig auf dem Holzweg ... ?????????

    Mit freundlichen Grüßen André


    Quellcode

    1. class AtpSettings: ObservableObject {
    2. @Published var playersEntityName = "Players" // set entityname for entity "Players"
    3. @Published var playersDictionary = loadEntity2Dictionary(entityName: "Players", attributeNames: connect2Entity(entityName: "Players")) // fill dictionary with given entity
    4. }
    :evil: ;( :( ... aller Anfang ist schwer ... ?( <X :evil:
  • Michael schrieb:

    Quellcode

    1. @Published var playersDictionary = loadEntity2Dictionary(entityName: playersEntityName, attributeNames: connect2Entity(entityName: playersEntityName))
    ... geht nicht?
    Was hast du denn versucht?
    Hi Michael,

    wenn ich den Eintrag so mache, wie Du ihn vorgeschlagen hast (denn das wäre ja mein Ziel), dann bekomme ich den Fehler: "Cannot use instance member 'playersEntityName' within property initializer; property initializers run before 'self' is available".

    Also innerhalb der "class" Definition erst die Variable zuweisen und dann gleich zu benutzen bekomme ich nicht hin!

    Mit freundlichen Grüßen André
    :evil: ;( :( ... aller Anfang ist schwer ... ?( <X :evil:
  • freelancer schrieb:

    Michael schrieb:

    Quellcode

    1. @Published var playersDictionary = loadEntity2Dictionary(entityName: playersEntityName, attributeNames: connect2Entity(entityName: playersEntityName))
    ... geht nicht?
    Was hast du denn versucht?
    wenn ich den Eintrag so mache, wie Du ihn vorgeschlagen hast (denn das wäre ja mein Ziel), dann bekomme ich den Fehler: "Cannot use instance member 'playersEntityName' within property initializer; property initializers run before 'self' is available".

    Also innerhalb der "class" Definition erst die Variable zuweisen und dann gleich zu benutzen bekomme ich nicht hin!


    Hast es schon mal über einen Initializer probiert?

    Grüsse
    Wolf
  • @Wolf: Initializer war das Keyword !!!!!


    Super, vielen Dank, Klasse :) :) :)

    So sieht der funktionierende Code nun aus:

    Quellcode

    1. class AtpSettings: ObservableObject {
    2. var playersEntityName = "Players"
    3. var tournamentEntityName = "Tournament"
    4. @Published var playersDictionary: [String: [String: String]]
    5. @Published var playersAttributeNames: Array<String>
    6. @Published var tournamentDictionary: [String: [String: String]]
    7. @Published var tournamentAttributeNames: Array<String>
    8. init() {
    9. playersDictionary = loadEntity2Dictionary(entityName: playersEntityName, attributeNames: connect2Entity(entityName: playersEntityName)) // fill dictionary with given entity
    10. playersAttributeNames = connect2Entity(entityName: playersEntityName)
    11. tournamentDictionary = loadEntity2Dictionary(entityName: tournamentEntityName, attributeNames: connect2Entity(entityName: tournamentEntityName)) // fill dictionary with given entity
    12. tournamentAttributeNames = connect2Entity(entityName: tournamentEntityName)
    13. }
    14. }
    Alles anzeigen
    :evil: ;( :( ... aller Anfang ist schwer ... ?( <X :evil: