Переменная, используемая в случае, если условие оператора не распознано - PullRequest
1 голос
/ 27 июня 2019

Я пытаюсь написать логику, чтобы упростить мой код.Значение переменной (pointpb) изменяется на основе различных входных данных и в зависимости от значения этой переменной будет выполняться оператор if.

Первоначально переменная была объявлена ​​внутри оператора if, но быстро измениласьчто однажды я понял, что это не может быть использовано вне этого утверждения.Я использовал обычные ресурсы.Google, YouTube и просмотрели документы Apple, объявили переменную в разных областях кода и т. Д., Но, похоже, не могут понять, почему это так.

class MapViewController: UIViewController, MKMapViewDelegate {  
    var pointpb = 0

    //add icon push button action/draw select enable

    @IBAction func Addpointpb(_ sender: UIButton)
    {
        pointpb = 1
        Iconselected.textColor = UIColor.blue
        self.Iconselected.text = "Select One"
        self.Circleselect.isHidden = false
        self.Lineselect.isHidden = false
        self.Pointselelct.isHidden = false
    }

    //point selected
    @IBAction func Pointselect(_ sender: UIButton)
    {
        pointpb = 2
        self.Pointselelct.isHidden = true
        self.Circleselect.isHidden = true
        self.Lineselect.isHidden = true
        self.Addpointpb.isHidden = true
        self.Pointcancel.isHidden = false
        self.Iconselected.text = "Point"
    }

    //line selected
    @IBAction func Lineselect(_ sender: UIButton)
    {
        pointpb = 3
        self.Pointselelct.isHidden = true
        self.Circleselect.isHidden = true
        self.Lineselect.isHidden = true
        self.Addpointpb.isHidden = true
         self.Pointcancel.isHidden = false
        self.Iconselected.text = "Line"
    }

     //circle selected
    @IBAction func Circleselect(_ sender: UIButton)
    {
        pointpb = 4
        self.Pointselelct.isHidden = true
        self.Circleselect.isHidden = true
         self.Lineselect.isHidden = true
        self.Addpointpb.isHidden = true
         self.Pointcancel.isHidden = false
        self.Iconselected.text = "Circle"
    }
}

//==================================================================

//preferred code for me to use   

//point selected

@IBAction func Pointselect(_ sender: UIButton)
{
    pointpb = 2
    self.Iconselected.text = "Point"
}

//line selected
@IBAction func Lineselect(_ sender: UIButton)
{
    pointpb = 3
    self.Iconselected.text = "Line"
}

//circle selected
@IBAction func Circleselect(_ sender: UIButton)
{
    pointpb = 4
    self.Iconselected.text = "Circle"
}

//if statement

if pointpb == 2, pointpb == 3, pointpb == 4
{
    self.Pointselelct.isHidden = true
    self.Circleselect.isHidden = true
    self.Lineselect.isHidden = true
    self.Addpointpb.isHidden = true
    self.Pointcancel.isHidden = false
}

Как вы можете видеть, входы UIButton для последних трех функций, по сути, делают то же самое.В идеале я хотел бы использовать раздел кода в нижней части.Однако, как упоминалось ранее, переменная больше не распознается, и я получаю сообщение об ошибке «ожидаемое объявление», указывающее на этот оператор if.Я чувствую, что это что-то глупо очевидно, но, очевидно, я тупой.

1 Ответ

0 голосов
/ 27 июня 2019

То, как вы пишете оператор if, ближе к синтаксису объявления нескольких переменных одновременно, поэтому XCode говорит, что это «ожидаемое объявление»

Правильный способ написать предложение if будет if (pointpb == 2 || pointpb == 3 || pointpb == 4)

Изучите основы Swift , чтобы освежить в памяти синтаксис

Также, просто в качестве подсказки, вы можете упростить предложение if с помощью if [2, 3, 4].contains(pointpb)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...