2016-09-19 3 views
1

У меня есть функция в swift3, которая получает утвержденную переменную и проверяет, является ли она истиной. Если это правда, тогда будет отображаться предупреждение, но если это не так, то ничего не происходит, когда он должен показывать предупреждение, которое было отклонено. Он даже ничего не напечатает, когда я попытаюсь заменить оповещение простой печатью(), если else ничего не возвращает в swift3

В чем может быть проблема?

@IBAction func approveuser(_ sender: AnyObject) { 
    theplace = place //Saving variable. 


    DispatchQueue.main.async { 

     if(self.place == ""){ 
      self.place = self.pickerData[0] 
     } 

     //BEGIN CHECK. 
     Alamofire.request("https://example.com/api.php?appvar=\(appvar)&requested=\(self.place)").responseJSON{ (response) -> Void in 

      if let JSON = response.result.value{ 
       let json = JSON as! NSDictionary 
       Approved = json["Approved"] as! String 
       let version = json["version"] as! String 

       if(version != AppVersion){ 
        self.showalert("Update Required", message: "A new version is available. Please update!", confirm: "Okay") 
        return 
       } 

       if(Approved == "true"){ 
        theurl = json["URL"] as! String //Give the URL. 
        self.showalert("Approved!", message: "Approved", confirm: "Okay") 
       }else{ 
        self.showalert("Denied!", message: "Denied", confirm: "Okay") 
       } 
      } 
     } 
    } 
} 
+0

Выполняет ли код выполнение инструкции if if? Вы пытались добавить контрольные точки? – CryingHippo

+0

Да, это пройдет мимо этого. Кажется, он не хочет ничего обрабатывать после {else}. Я попытался сделать некоторые контрольные точки, чтобы проверить их, но они не помогли мне определить проблему. – Matt

+0

Итак, если вы поставили точку останова в «else», она не срабатывает? – CryingHippo

ответ

-1

после этой линии

Approved = json["Approved"] as! String 

печати Утверждена

print(Approved) 

убедитесь, что он печатает либо истинным, либо ложным убедитесь, что он не печатает факультативным (истина), ни по желанию (ложь)

Ответ json после обновления на Swift 3 возвращает много необязательных значений, даже tho ugh, вы ничего не изменили в своем коде после обновления с Swift 2

+0

Если он печатает необязательное значение true/false, он все равно будет работать. При сравнении, он будет сравнивать фактическую строку, а не «Необязательный (String)», это просто то, что делает компилятор, чтобы показать вам. Кроме того, несмотря на то, что даже если этот результат был равен нулю, else будет печатать. – Dallas

Смежные вопросы