Klasse mit mit einem Index adressierbaren Instanzen ? geht das ?

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

  • macmoonshine schrieb:

    michel_88 schrieb:

    dynamisch erzeugte variablen geht es nicht
    Das ist auch nicht ganz richtig. Mit z. B. eval, so wie du es oben vorgeschlagen hast, sollte man es jedenfalls nicht machen. Dass man es nicht so machen kann, würde ich nicht beschwören wollen. Mit C oder Assembler bekommt man da vielleicht etwas hin. Falls du dynamisch erzeugte Variablen brauchst, kannst du das wesentlich einfacher über ein Dictionary erreichen; diese Möglichkeit wurde dir auch bereits genannt.
    Für dein Problem ist jedenfalls ein ein- oder zweidimensionales Array die aus meiner Sicht geeignetste Lösung.
    Identifier werden zur Laufzeit entfernt und dienen nur dem Compiler. Insofern dürfte das nicht gehen.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Wakko schrieb:

    michel_88 schrieb:

    verstehe.

    Dictionary habe noch nicht vertieft. Werde aber. Habe jedoch eine kleine Vorahnung dass das nicht hochdynamisch sein kann.
    Ja deine Vorahnung stimmt. Ein Dictionary ist so ähnlich wie ein Array ausser dass Du über eine Variable auf den Inhalt zugreifst und nicht einfach über den Index der Zelle. Was das mit dynamisch erzeugten Variablen zu tun haben soll kann ich Dir leider nicht sagen. Du solltest das JA weiter oben von macmoonshine einfach als nein werten. In Swift ist es nicht möglich und nicht nötig dynamisch erzeugte Variablen zu erstellen.
    Man greift auf Dictionarys genau so wie auf Arrays weder mit Variablen noch mit Literalen zu, sondern mit Werten (Ausdrücken). Der Unterschied besteht darin, dass die Werte bei einem Array eine Ganzzahl darstellen, während sie bei einem Dictionary im Prinzip jeden Typs sein können. (Die weiteren Einschränkungen ergeben sich jeweils aus der eingesetzten Programmiersprache und/oder dem eingesetzten Framework.)

    Dynamisch erzeugte Variablen gibt es in den meisten Sprachen – soll heißen: C, Objective-C, Swift, C++ – nicht. Das liegt daran, dass sie herunterkompiliert werden und die Verwendung von Variablennamen für das ausführbare Programm unerheblich ist. Dies adressiert nämlich Objekte im weiteren Sinne ("Speicherplätze") nicht über den Namen, sondern über eine Speicheradresse.

    Der OP meinte aber offenkundig dynamisch erzeugte Variablennamen. Dies entspricht einem Dictionary, da dort die Schlüssel vom Typen String sind und dynamisch erzeugt und ausgewählt werden können. Dictionarys sind also in gewisser Weise die dynamische Variante aller in einem Scope sichtbaren Identifizierer.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • michel_88 schrieb:

    verstehe.

    Dictionary habe noch nicht vertieft. Werde aber. Habe jedoch eine kleine Vorahnung dass das nicht hochdynamisch sein kann. Das 2 dim. Array ist, meine ich auch, der beste Ansatz.

    Eine dynamische Erzeugung von variablen und generell dynamische Erzeugung vom code war für mich immer ein interessanter Denkanstoss.

    Motto : "das Programm kann sich selber programmieren".

    Aber das ist eine andere Geschichte.

    Das passt übrigens zu Deiner Signatur, macmoonshine.

    Grüsse,
    Michel
    Dann empfehle ich ObjeC. Swift ist dafür ungeeignet.

    Wenn du dich informieren würdest, wüsstest du das aber schon.
  • Amin Negm-Awad schrieb:

    Der Debug-Code nicht, was auch immer mit Code gemeint ist. Das ist also nicht Gegenstand der Programmausführung.
    Das Binary, das mit Debug-Option übersetzt wurde, das Debug-Dingsda oder das Debug-Du-weißt-schon... ;)

    Auch wenn die Debug-Informationen nicht in der Runtime verfügbar sind: Habe ich zur Laufzeit des Programms wirklich keine Möglichkeit, an sie zu gelangen?
    „Meine Komplikation hatte eine Komplikation.“
  • Na, ja, du kannst ja die Datei lesen. dsym oder so heißt die. Man kann die übrigens auch für das Release erzeugen, stellt sich nur die Frage, ob das sinnvoll ist.

    Aber der Punkt ist ja ein anderer: Er wollte eine Variable mit einem bestimmten Identifier erst zur Laufzeit erzeugen. Das interessiert den laufenden Code aber nicht, weil der die Bezeichner ohnehin nicht benutzt. Es gibt ja keine dynamische Bindung an Variablen.

    Es ist in die dsym zu stopfen ändert daran ja genau so wenig wie ein `NSLog()`: Schön anzuschauen, aber ohne jede Funktion.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • michel_88 schrieb:

    Da empfehlt sich eine Klasse mit mehreren Variablen, würde ich sagen.
    Da empfehlen sich unterschiedliche Zellklassen, würde ich sagen.

    Wenn Du ne Tabelle anlegen willst, nimm NSTableView.
    Wenn Du ne Tabelle fürs Phone anlegen willst, wirf das Vorhaben über Board.
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P