Ich hatte diese Frage ziemlich lange. Ich versuche das Problem der 3 Türen zu visualisieren, nur um Spaß zu haben und mit Swift zu üben. So habe ich:Wie kann dieser Code gekürzt werden, um Doppelungen zu vermeiden?
3 Türen und daher 3 verschiedene IBActions & 3 Funktionen für alle Türen. Diese Funktionen sind alle genau gleich, jedoch ist nur die Anzahl der Türen in jedem Code unterschiedlich. Also ich frage mich, kann ich diesen Code kürzen ?:
func openSecondChoice(whatDoorIsClickedOn: Int)
{
if whatDoorIsClickedOn == 1
{
if whatDoorIsClickedOn == doorWithNumber
{
UIButtonDoor1.setBackgroundImage(UIImage (named: "doorWithMoney"), for: UIControlState.normal)
}
else
{
UIButtonDoor1.setBackgroundImage(UIImage (named: "doorWithGoat"), for: UIControlState.normal)
}
}
if whatDoorIsClickedOn == 2
{
if whatDoorIsClickedOn == doorWithNumber
{
UIButtonDoor2.setBackgroundImage(UIImage (named: "doorWithMoney"), for: UIControlState.normal)
}
else
{
UIButtonDoor2.setBackgroundImage(UIImage (named: "doorWithGoat"), for: UIControlState.normal)
}
}
if whatDoorIsClickedOn == 3
{
if whatDoorIsClickedOn == doorWithNumber
{
UIButtonDoor3.setBackgroundImage(UIImage (named: "doorWithMoney"), for: UIControlState.normal)
}
else
{
UIButtonDoor3.setBackgroundImage(UIImage (named: "doorWithGoat"), for: UIControlState.normal)
}
}
}
Yuk! Dieser Code ist so hässlich! Wenn der Benutzer zum Beispiel auf door1 drückt, rufe ich die Funktion "openSecondChoise (whatDoorIsClickedOn: 1)" auf. Gibt es eine Möglichkeit, dies zu verkürzen? Vielen Dank! Ich benutze keine Kurse hier, sollte ich sie benutzen?
Sie sollten dies auf http://codereview.stackexchange.com anstatt hier veröffentlichen. – rmaddy