【发布时间】:2017-05-07 06:58:31
【问题描述】:
我有这个问题很久了。我正在尝试可视化 3 门问题,只是为了好玩和练习 Swift。所以我有:
3 个门,因此有 3 个不同的 IBActions & 所有门的 3 种功能。这些功能完全相同,只是每个代码中的门数不同。所以我想知道,我可以缩短这段代码吗?:
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)
}
}
}
哎呀!这段代码太丑了!例如,如果用户按下 door1,我将调用函数“openSecondChoise(whatDoorIsClickedOn: 1)”。有没有办法缩短这个?谢谢!我这里不使用类,我应该使用它们吗?
【问题讨论】:
-
你应该在codereview.stackexchange.com而不是这里发帖。