Wie setze ich eine Variable in Swift aus 2 anderen Variablen zusammen?

CODE - (programmieren, Java, iOS)

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Wenn ich deine zusätzliche Erklärung ansehe, dann denke ich eher, dass du dich ganz dringen mal mit den Datentypen Array und Set befassen solltest. Dein Ansatz ist nämlich schon vollkommen falsch und so wirst du nie eine saubere Lösung bekommen.

Hier mal ein kleines Beispiel, wie das aussehen könnte:

let arrQuestions = ["Frage 1", "Frage 2", "Frage 3"]

func createQuestion(index: Int) -> String? {
  if index >= 0 && index < arrQuestions.endIndex {
    return arrQuestions[index]
  }

  return nil
}

if let question = createQuestion(2) {
  print(question)
}

Und noch ein Tipp: Mische wenn möglich beim Namen von Bezeichnern nicht Deutsch und Englisch. Entscheide dich für eine Sprache (Englisch ist da meist besser) und setzte das dann konsequent durch.

Woher ich das weiß:Berufserfahrung – Entwickle Anwendungen für iOS, iPadOS und macOS beruflich.

Hallo,
ich beherrsche zwar Swift nicht aber in vielen Programmiersprachen kann man Variablen in einer verketten ist in PHP jedenfalls so.

Okay, ich formuliere es mal genauer...

Ich habe über 2000 Fragen. Diese sind quasi durchnummeriert, wie man im erstem Bild sehen kann.

Damit die Fragen in der Richtigen Reihenfolge gezeigt werden, habe ich eine Variable, die ich "number" genannt habe. Je nach dem, welchen Wert die "number" hat, soll die entsprechende Frage ausgegeben werden. 

Jedes Mal wenn der "Fertig-Button" gedrückt wird, erhöht sich die "number" um eins. (Bild 2)

Die function "CreateFrage" beinhaltet einen Switch... Damit, wenn die "number" 1 ist, auch die Frage 1 ausgegeben wird... Meine bisherige Lösung ist Bild 4, bei dieser müsste ich aber alle Fälle (Case) aufschreiben, so viele Fragen wie ich hab. (Bild3)

Ich versuche jetzt also, den Switch mit "Case number:" zu benutzen... Also dass ich nur nur einen Case quasi brauche, der alle unterstützt. Ziel ist es, dass bei  dem ("FrageLabel.text = XY") als XY letztendlich die Variable rauskommt die ich brauche, damit die richtige Frage zusammengesetzt wird.
Der Variablenname setzt sich ja zusammen aus einem Stamm "frage" und hintendran der "number". Allerdings scheiter ich hier mit meinem Gedankengang... (Bild4)

Durchnummerierte Fragen (Bild1) - (programmieren, Java, iOS) FertigButton (Bild2) - (programmieren, Java, iOS) Bisherige Lösung (Bild3) - (programmieren, Java, iOS) Neue function, an der ich Scheiter (Bild4) - (programmieren, Java, iOS)

Das Walross ist das Ergebnis in str3. Soweit so gut!

Wallross ist weder ein Zeiger noch eine Variable, sondern ein String, der an der Stelle str3 gefunden wird.

Wenn dort nun „Hallo an alle“ ausgegeben werden soll, müsstest du schreiben:

let str3 = "Hallo an alle"; // die Zuweisung eines Strings auf einen String ist nicht möglich! Das sollte doch wohl klar sein … :-)

Noch was anderes: Hast du dir schon mal die Bezeichner in den Frameworks angesehen. Wenn man Bezeichner wie str1, str2 … liest, bekommt ein gestandener Programmierer „Augenkrebs“. Mit solchen Bezeichnern hat man im vorigen Jahrtausend gearbeitet. Wenn man in 6 … 36 Monaten den Code nochmals lesen will, weisst weder du noch ein Kumpel, was gemeint ist. Lies' dir mal das Buch „Clean Code“ durch. In der Wikipedia ist ein Übersichtsartikel!

Was willt du dann mit str1 und str2 wenn du "Hallo an Alle" asusgeben willst.

str1 und str2 sind halt Walross, definiere str1 "Hallo an" und str2 als "Alle", dann kannst du mit str1 + str2 "Hallo an Alle" ausgeben.

Irgendwie verstehe ich manche Fragestellung nicht