Ich habe eine Anwendung mit 3 Bildschirmen, Bildschirm 1 (Kategorien) hat eine Reihe von Tasten, Bildschirm 2 (Details) hat mehr Tasten und Bildschirm 3 zeigt Text basierend auf welcher Schaltfläche war in den vorherigen 2 Bildschirmen gedrückt.Verringerung der Länge der if-Anweisung in swift
Die Tasten auf Bildschirm 1 bleiben gleich, die Tasten auf Bildschirm 2 variieren mit einigen versteckten oder angezeigten, je nachdem, welche Taste auf dem ersten Bildschirm gedrückt wurde. Zu diesem Zweck habe ich jetzt eine sehr lange if-Aussage und ich versuche Wege zu finden, sie zu reduzieren.
Kann helfen, aber denke, ich vermisse etwas Einfaches.
If-Anweisung zu diesem recht ähnlich sieht:
if selectedCategory == "Option 1" {
if selectedDetail == "Detail A" {
selectedURL = optionOneData.detailA
} else if selectedDetail == "Detail C" {
selectedURL = optionOneData.detailC
} else if selectedDetail == "Detail E" {
selectedURL = optionOneData.detailE
} else if selectedDetail == "Detail G" {
selectedURL = optionOneData.detailG
} else if selectedDetail == "Detail J" {
selectedURL = optionOneData.detailJ
} else {
print("Invalid selection, something went wrong.")
}
} else if selectedCategory == "Option 2" {
if selectedDetail == "Detail B" {
selectedURL = optionTwoData.detailB
} else if selectedDetail == "Detail C" {
selectedURL = optionTwoData.detailC
} else if selectedDetail == "Detail D" {
selectedURL = optionTwoData.detailD
} else if selectedDetail == "Detail E" {
selectedURL = optionTwoData.detailE
} else if selectedDetail == "Detail F" {
selectedURL = optionTwoData.detail F
} else if selectedDetail == "Detail G" {
selectedURL = optionTwoData.detailG
} else if selectedDetail == "Detail H" {
selectedURL = optionTwoData.detailH
} else if selectedDetail == "Detail I" {
selectedURL = optionTwoData.detailI
} else if selectedDetail == "Detail J" {
selectedURL = optionTwoData.detailJ
} else {
print("Invalid selection, something went wrong.")
}
nicht mein eigentlicher Code, umbenannt Variablen für Kontext.
Dies entspricht nur etwa 1/3 von dem, was ich habe, also bin ich daran interessiert, die Menge an Code zu reduzieren, der effizienter und lesbarer ist.
Danke.
'Switch()' Anweisungen sind der Ersatz von langen 'if-elseif-else' bedingten Anweisungen. Versuche es zu benutzen. – Priyal
Erstellen Sie auch Ihre Option als 'Enum' wird Ihren Code viel lesbarer machen, noch müssen Sie 'switch' verwenden, um Daten und String zuzuweisen – Tj3n
Eine switch-Anweisung wäre immer noch ziemlich lang, Ihre Daten könnten wahrscheinlich in einem Wörterbuch gespeichert werden Array ganz einfach. –