2016-09-19 10 views
1

私はswift3で承認された変数を取得し、それが真であるかどうかを調べる関数を持っています。それが本当であれば警告が表示されますが、それが真でない場合、承認が拒否されたという警告を表示する必要があります。アラートを簡単なプリント()で置き換えようとすると何も印刷されません他に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 let"文を実行しますか?ブレークポイントを追加しようとしましたか? – CryingHippo

+0

はい、それはそれを過ぎて実行します。 } else {の後に何も処理したくないようです。私もいくつかのブレークポイントをテストしてみましたが、問題を特定するのに役立たなかった – Matt

+0

ブレークポイントを "else"に置くと起動しません。 – CryingHippo

答えて

-1

この行の後

print(Approved) 

を承認

Approved = json["Approved"] as! String 

プリントは、(偽)(真)もオプションで、それは真か偽のどちらか が、それはオプションで印刷されないことを確認してください印刷し確認してください

スウィフト3にアップグレードした後のjsonレスポンスは、多くのオプションの値を返します。あなたはSwift 2からアップグレードした後にあなたのコードで何も変更していません

+0

オプションのtrue/falseを出力すると、それでも機能します。比較すると、実際の文字列と比較されます。「Optional(String)」ではなく、コンパイラが表示するものだけです。また、たとえこの結果がnilであっても、elseが出力されます。 – Dallas

関連する問題