Борьба с написанием кода для моего умного домашнего приложения - PullRequest
0 голосов
/ 07 февраля 2019

Я все еще новичок в написании кода и мне нужна помощь с моим быстрым кодом.В настоящее время я пишу свое собственное приложение, чтобы иметь возможность управлять моими Wi-Fi коммутаторами sonoff через приложение на моих iPhone, iMac и Apple watch.Я использовал IFTTT-апплеты для настройки веб-хуков, которые позволяют мне изменять состояние устройства с помощью GET Contents of URL или POST в URL.Я написал код и соединил его с кнопками на моей главной плате, но мне нужно найти способ, чтобы код выполнял только определенные части кода, когда срабатывает определенный переключатель, а не весь код.

В настоящее время происходит то, что я не могу включить один индикатор, не включив и другой, потому что приложение хочет запустить весь код, чтобы включить первый индикатор, и для этого вторая кнопка должнабыть нажатым.

Есть ли способ решить эту проблему или есть более простой способ сделать это?Заранее спасибо.

    import UIKit

class ViewController: UIViewController {

@IBOutlet weak var lampON: UIButton! //Floor Lamp ON
@IBOutlet weak var lampOFF: UIButton! //Floor Lamp OFF
@IBOutlet weak var ledsON: UIButton! //Desk LEDS ON
@IBOutlet weak var ledsOFF: UIButton! //Desk LEDs OFF

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a
    nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated
}
//Turns Floor Lamp ON
@IBAction func tappedButton(_ sender: Any) {

    let url = URL(string:
        "https://maker.ifttt.com/trigger/")
    //The string url continues but I removed the rest for security purposes

    let task = URLSession.shared.dataTask(with: url!) { (data,
        response, error) in

        if error != nil {

            print(error)

        }
        else{

            let htmlContent = NSString(data: data!, encoding:
                String.Encoding.utf8.rawValue)

            print(htmlContent)

        }

    }

    task.resume()

 }//End of Code That Turns Floor Lamp ON
 //Turns Floor Lamp OFF
 @IBAction func tappedOffButton(_ sender: Any) {

    let url = URL(string: "https://maker.ifttt.com/trigger/")
    //The url string continues but I removed the rest for security purposes

    let task = URLSession.shared.dataTask(with: url!) { (data,
        response, error) in

        if error != nil {

            print(error)

        }
        else{

            let htmlContent = NSString(data: data!, encoding:
                String.Encoding.utf8.rawValue)

            print(htmlContent)

        }

    }

    task.resume()
 } //End of Code That Turns Floor Lamp OFF
 //Turns Desk LEDs ON
 @IBAction func deskLEDSON(_ sender: Any) {

    let url = URL(string:   "https://maker.ifttt.com/")
        //The url string continues but I removed the rest for security purposes

    let task = URLSession.shared.dataTask(with: url!) { (data,
        response, error) in

        if error != nil {

            print(error)

        }
        else{

            let htmlContent = NSString(data: data!, encoding:
                String.Encoding.utf8.rawValue)

            print(htmlContent)

        }

    }

    task.resume()

  } //End of Code That Turns Desk LEDs ON
 // Turns Desk LEDs OFF
 @IBAction func deskLEDsOFF(_ sender: Any) {

    let url = URL(string: "https://maker.ifttt.com/trigger/")
    //The url string continues but I removed the rest for security purposes

    let task = URLSession.shared.dataTask(with: url!) { (data,
        response, error) in

        if error != nil {

            print(error)

        }
        else{

            let htmlContent = NSString(data: data!, encoding:
                String.Encoding.utf8.rawValue)

            print(htmlContent)

        }

    }

    task.resume()
  } //End of Code that Turns Desk LEDs OFF

  } //End of App Code

1 Ответ

0 голосов
/ 07 февраля 2019

Похоже, у вас есть четыре кнопки и четыре IBActions, по одной для каждой кнопки.Вы скрываете URL, но я предполагаю, что у каждой функции есть вызов к другому URL.Теоретически это должно работать.Если он запускает несколько действий, это может быть результатом подключения кнопки к более чем одному IBAction.Дважды проверьте в своей истории, что вы не сделали это случайно.Подключение кнопки к новому IBAction не приводит к автоматическому отключению его от других IBAction.

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