2016-04-06 8 views
0

私のPHPは、checkという1つのフィールドしか持たない連想配列を含むJSONオブジェクトを送信します。このフィールドには、1または0が含まれます。値が0のアラートを作成するには、この整数を使用します。私はlogという名前の外部メソッドvarを作成しようとしましたが、ここでは名前の値を与えようとしましたが、動作しません。すぐにJSONが受け取ったIntを使用する

@IBAction func LogIn(sender: UIButton) { 

    let verify = 0 

    let bodyString = "a=\(User_log.text!)&b=\(Password_log.text!)" 
    let bodyData = bodyString.dataUsingEncoding(NSUTF8StringEncoding) 

    let request = NSMutableURLRequest(URL: NSURL(string: "http://mysite/myFolder/login.php")!) 
    request.HTTPBody = bodyData 
    request.HTTPMethod = "POST" 

    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { 
     data, response, error in 

     if data == nil { 
      print("request failed \(error)") 
     } 

     do{ 
      let json = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [String: Int] 
      if let name = json!["check"] { 
       if name == verify{ 
        log = 0 
       } 
       else{ 
        log = 1 
       } 
      } 
     }catch { 
      print("bom bom bom error") 
     } 
    } 
    task.resume() 

} 
+1

を試してみてください?あなたが直面している問題について詳しく説明してください。 –

+0

サーバは本当に 'Int'を返しますか? – vadian

+0

JSONは{check = 1}のようです。コードを書いてみましょう:let name = json!["check"];名前は今では値1を持っています。私はtask.resume()の後にこの値を使いたいです。 – Alastair

答えて

0

NSJSONSerialization.JSONObjectWithDataあなた[String: AnyObject]ない[String: Int]を与えます。また、 "チェック" NSNumberないInt

、次のことを試してみてくださいことになるための値:

let data = try NSJSONSerialization.dataWithJSONObject(["check": "1", "other": "test"], options: NSJSONWritingOptions.init(rawValue: 0)) 

var log = 0 

if let json = try NSJSONSerialization.JSONObjectWithData(data, options: []) as? [String: AnyObject] { 
    log = json["check"]?.integerValue ?? 0 
} 
+0

Xcodeはそれを言う??あいまいです – Alastair

+0

どのようにログ変数を作成しますか?私はあなたが 'var log:Int'を最初のスニペットでメソッドの外側のどこかに定義すると仮定しました。私は遊び場でチェックした例を更新しました。 –

+0

'JSONObjectWithData'は' AnyObject'を返します – vadian

0

は動作しません。これは何

if let name = json!["check"] as? Int { 
    if name == verify{ 
     log = 0 
    } 
    else{ 
     log = 1 
    } 
} 
関連する問題