Variablenamen zusammenstellen aus 2 Strings; Geht das ?

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

  • Thallius schrieb:

    matz schrieb:

    macmoonshine schrieb:

    Wahrscheinlich meinte er nicht persistent sondern permanent. ;)
    Nö, ich will immer und überall Zugriff darauf haben. Um die Befüllung kümmere ich mich selbst ;)
    Das wäre dann wohl eher als Attribut im Singleton oder?
    Gruß

    Claus
    Und wenn ich dann noch Pizza dazu möchte, brauch ich mehrere Singletons? Wir hatten doch schon einmal das Gespräch über Multitons, nä nä
  • Michael schrieb:

    macmoonshine schrieb:

    Die Shebang-Zeile am Anfang kann man übrigens auch als #!/usr/bin/swift schreiben; zumindest sofern die Command-Line-Tools installiert sind.
    Ja, stimmt. Geht inzwischen ja auch ohne Commandline Tools. Die braucht man ja generell nicht mehr (seit Mavericks oder so).
    Sicher?
    Bei manchen Gems brauch ich trotzdem noch die Commandline Tools. Oder jetzt nur auf diesen Fall bezogen?
  • matz schrieb:

    Michael schrieb:

    macmoonshine schrieb:

    Die Shebang-Zeile am Anfang kann man übrigens auch als #!/usr/bin/swift schreiben; zumindest sofern die Command-Line-Tools installiert sind.
    Ja, stimmt. Geht inzwischen ja auch ohne Commandline Tools. Die braucht man ja generell nicht mehr (seit Mavericks oder so).
    Sicher?Bei manchen Gems brauch ich trotzdem noch die Commandline Tools. Oder jetzt nur auf diesen Fall bezogen?
    Ich weiß nicht, ob die Commandline Tools noch mehr enthalten, als Xcode mitliefert, aber für alles, was in Xcode mit drin ist, braucht man nichts weiter installieren, um die Tools im Terminal ohne xcrun aufzurufen.
  • gritsch schrieb:

    michel_88 schrieb:

    also kann man in einer Array Instanzen einer Klasse ablegen ?

    wenn Ja, dann habe die Frage beantwortet bekommen !
    klar, was willst du sonst da drin ablegen? bier und chips? ;)
    In VB bzw. in anderen Sprachen kann man ja keine Objekte in Arrays legen, sondern nur ints und so. Mir fällt gerade ums verecken der Name nicht ein. :D
    Every language has an optimization operator. In ObjC that operator is ‘//’.

    golbros.de
  • gritsch schrieb:

    du legst keine variablen an für jede instanz sondern packst die instanzen in eine collection. zb ein array oder mehrdimensionales array.

    wie schon mal gesagt: du musst dich von bestimmten konzepten trennen und umdenken.
    wenn ich 10.000 Instanzen habe muss ich alle händisch in die collection eingeben ?
    Kann man endgültig nicht die Instanzen mit einem Index oder so etwas versehen um diese dann in einem do cyklus automatisch zu generieren und befühlen ?
  • habe das Folgende in einem C# Forum gefunden. Geht so etwas auch in Swift ?

    class MyClass
    {
    public int ObjectNumber { get; set; }
    public string SomeVariable { get; set; }
    public string AnotherVariable { get; set; }
    }
    // You should use keyboard input value for this
    int objectsToCreate = 10;

    // Create an array to hold all your objects
    MyClass[] myObjects = new MyClass[objectsToCreate];

    for (int i = 0; i < objectsToCreate; i++)
    {
    // Instantiate a new object, set it's number and
    // some other properties
    myObjects = new MyClass()
    {
    ObjectNumber = i + 1,
    SomeVariable = "SomeValue",
    AnotherVariable = "AnotherValue"
    };
    }
  • pierredrks schrieb:

    Meint Tip, lies was Einführendes. Auch in Swift gibt es Kontrollstruckturen wie in jeder anderen Sprache auch. Es gibt sogar for Schleifen, die dir, wenn du meinen Tip befolgst, helfen können.
    es ist mir klar mittlerweile dass es um eine Grundsatzfrage geht welche mit ja oder nein zu beantworten ist:
    Kann man Instanzen der gleichen Klasse mit code generieren oder nicht (10.000 Stück z. B.)

    Muss ich 10.000 mal:

    Auto_1 = Instanz der Klasse Auto
    Auto_2 = Instanz der Klasse Auto
    Auto_3 = Instanz der Klasse Auto
    ...
    Auto_10000 = Instanz der Klasse Auto

    tippen oder geht dass mit einer Schleife?

    for i = 1 to 10000
    Auto(i) = Instanz der Klasse Auto
    next i

    um dann Auto(999).farbe = "grün"
    codieren zu können.

    Das möchte ich gerne wissen bevor ich mit dem Studium anfange.
  • Du bist aber schon lernresistent, oder?

    Wie inzwischen mehrfach erläutert, kannst Du Instanzen eines Objektes in einem Array speichern. Schöner noch: Im Gegensatz zu "Deinem" C#-Code müssen die Elemente eines NS(Mutable)Arrays nicht vom gleichen Datentyp / Objekttyp sein ... so ist es in Objective-C und in Swift bestimmt nicht anders. Schleife 'rum und gut ist.

    So, und nun schmeisse endlich einmal den Denkballast anderer Programmiersprachen über Bord und setzte Dir ernsthaft und mit dem Aneignen von Grundlagen mit Swift auseinander.

    Ich bin raus: Zum einen, weil mich diese Art von Diskussionen langsam ermüden, zum anderen, weil ich Swift bisher ignoriere und daher in der Sprache keine praktische Erfahrung habe...

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • machst du auch irgendwas selbst?

    öffne Playground und probiere es aus, wie wäre es denn damit?
    Nebenbei lädst du dir am besten Mal das Swift e-Book runter und liest mal darin.
  • michel_88 schrieb:

    pierredrks schrieb:

    Meint Tip, lies was Einführendes. Auch in Swift gibt es Kontrollstruckturen wie in jeder anderen Sprache auch. Es gibt sogar for Schleifen, die dir, wenn du meinen Tip befolgst, helfen können.
    es ist mir klar mittlerweile dass es um eine Grundsatzfrage geht welche mit ja oder nein zu beantworten ist:Kann man Instanzen der gleichen Klasse mit code generieren oder nicht (10.000 Stück z. B.)

    Muss ich 10.000 mal:

    Auto_1 = Instanz der Klasse Auto
    Auto_2 = Instanz der Klasse Auto
    Auto_3 = Instanz der Klasse Auto
    ...
    Auto_10000 = Instanz der Klasse Auto

    tippen oder geht dass mit einer Schleife?

    for i = 1 to 10000
    Auto(i) = Instanz der Klasse Auto
    next i

    um dann Auto(999).farbe = "grün"
    codieren zu können.

    Das möchte ich gerne wissen bevor ich mit dem Studium anfange.
    Ja, geht. Viel Spass beim Studium.

    Und komm wieder, wenn du das Swift-Buch durchgelesen hast! Mindestens ein Mal.

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

  • Hallo michel_88,

    wenn Du mit Swift klar kommen willst musst Du dich echt von einiegen Sachen lösen, die Du bei Visual Basic gemacht hast. Ich hab mich mal ran gesetzt und eine Matrix wie Du es gerne hättest im Playground erstellt. Anstatt einer Klasse habe ich eine Struktur genutzt. Unterschiede kannst Du in der Swift Dokumentation nachlesen: developer.apple.com/library/io…/uid/TP40014097-CH13-ID82
    Die Struktur Matrix solltest Du ja kennen. Ich habe sie so umgeschrieben, dass man die Matrix mit der erstellten Struktur füllen kann.
    Als letztes zeige ich wie man die Zellen füllen und wie man darauf zugreifen kann. Sollte eigentlich auch von einem Anfänger nachvollziehbar sein, da es auch von einem Swiftanfänger kommt ;) Ich denke mit dem Beispiel kannst Du auch ganz gut die Unterschiede in der Art zu Programmieren erkennen. In XCode nicht vergessen unter "View->Assistant Editor->Show Assistant Editor" einschalten, damit Du die println() Ausgaben sehen kannst.

    Quellcode

    1. struct MeineStruktur
    2. {
    3. var alter: Int
    4. var name: String
    5. func infos() {
    6. return println("Mein Name ist \(name) und ich bin \(alter) Jahre alt")
    7. }
    8. }
    9. struct Matrix {
    10. let rows: Int, columns: Int
    11. var grid: [MeineStruktur] // Type der Zelle = MeineStruktur
    12. // Initalisierung der Struktur Matrix:
    13. init(rows: Int, columns: Int) {
    14. self.rows = rows
    15. self.columns = columns
    16. grid = Array(count: rows * columns, repeatedValue: MeineStruktur(alter: 0, name: "")) // füllen der Zellen mit unserer Struktur und Initialisierung mit alter = 0 und Name = ""
    17. }
    18. func indexIsValidForRow(row: Int, column: Int) -> Bool {
    19. return row >= 0 && row < rows && column >= 0 && column < columns
    20. }
    21. subscript(row: Int, column: Int) -> MeineStruktur {
    22. get {
    23. assert(indexIsValidForRow(row, column: column), "Index out of range")
    24. return grid[(row * columns) + column]
    25. }
    26. set {
    27. assert(indexIsValidForRow(row, column: column), "Index out of range")
    28. grid[(row * columns) + column] = newValue
    29. }
    30. }
    31. }
    32. var mein2DArray = Matrix(rows: 2, columns: 2) // Erstellen einer Instanz von Matrix. Achtung erste Zelle ist 0,0
    33. mein2DArray[1,1].alter = 62
    34. mein2DArray[1,1].name = "Dieter"
    35. mein2DArray[1,1].infos()
    36. println("\(mein2DArray[1,1].name)")
    Alles anzeigen