2017-05-03 19 views
-4

私はphpを使用してしばらくログインしようとしていますが、最終的なバグがあり終了しません。 NSJSONSerializationにエラーが表示されるバグは、コールでエラーが発生したことを示しています。それから、私はスクリーンショットを提供し、エラーがより明確になるようにします。そして、私がブロッキングの瞬間にいるので、あなたが私を助けることができるように、私はそれを解決する方法がわかりません。事前に感謝コールで余分な引数エラーが発生しました

フォトエラー:[ コード:

@IBAction func loginButtonTapped(sender: AnyObject) { 

    let userEmail = userEmailTextField.text; 
    let userPassword = userPasswordTextField.text; 



    if(userEmail!.isEmpty || userPassword!.isEmpty) { return; } 

    let myUrl = NSURL(string: "http://localhost/billapp/userSignIn.php"); 
    let request = NSMutableURLRequest(URL:myUrl!); 
    request.HTTPMethod = "POST"; 

    let postString = "userEmail=\(userEmail)&userPassword=\(userPassword)"; 

    request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding); 

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

     if error != nil{ 
      print("error=\(error)") 
      return 
     } 

     var err: NSError? 

     var json = NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers, error:NSError) as? NSDictionary 

     if let parseJSON = json { 
      var resultValue:String = parseJSON["status"] as String!; 
      print("result: \(resultValue)") 

      if(resultValue=="Success") 
      { 
       NSUserDefaults.standardUserDefaults().setBool(true, forKey: "isUserLoggedIn"); 
       NSUserDefaults.standardUserDefaults().synchronize(); 

       self.dismissViewControllerAnimated(true, completion: nil); 
      } 
     } 
    } 
    task.resume() 
} 

last error

+0

https://developer.apple.com/reference/foundation/jsonserialization/1415493-jsonobjectについては、以下のスウィフト3.

do { var json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) if let parseJSON = json { var resultValue:String = parseJSON["status"] as String!; print("result: \(resultValue)") if(resultValue=="Success") { NSUserDefaults.standardUserDefaults().setBool(true, forKey: "isUserLoggedIn"); NSUserDefaults.standardUserDefaults().synchronize(); self.dismissViewControllerAnimated(true, completion: nil); } } } catch let error { //Perform the error handling here } 

次のコード - ドロップ'NS'はメソッド名を変更し、' error'を削除し、 'try'でラップします。 – luk2302

+0

私のコードでそれを適応させることはできますか? –

+0

parseJSON = jsonの場合、次のようなエラーが表示されます:未解決の識別子 'json'を使用しています –

答えて

0

あなたはクイックフィックスのsugestionsに従うことができます。そうすることが、あなたがこのように終わるようになる:Objective Cのとは異なり

do { 
    var json = try JSONSerialization.jsonObject(with: Data(), options: .mutableContainers) 
    if let parseJSON = json { 
      //your code 
    } 
} catch { 
    //handle error 
} 
+0

私はスイフト2とコード3のためこれを使用できません –

+0

質問はSwift 3 @stackamrとタグ付けされましたか? – luk2302

+0

申し訳ありませんが、間違いでした。しかし、迅速な2でそれをやるのを助けてくれますか? –

0

、スウィフトの新しいmethodolgyあたりとして、エラーが代わりの方法でエラーオブジェクトを渡すのtry/catchブロックを使用して処理されます。

使用スウィフト2

do { 
     var json = try NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers) 
     if let parseJSON = json { 
     var resultValue:String = parseJSON["status"] as String!; 
     print("result: \(resultValue)") 

     if(resultValue=="Success") 
     { 
      NSUserDefaults.standardUserDefaults().setBool(true, forKey: "isUserLoggedIn"); 
      NSUserDefaults.standardUserDefaults().synchronize(); 

      self.dismissViewControllerAnimated(true, completion: nil); 
     } 
    } 
} catch let error { 
     //Perform the error handling here 
} 
+0

これは迅速です。2 –

+0

私はSwift 2のために組み込む答えを編集しました。 –

+0

それが動作しますが、parseJSON = jsonという行の場合、私は次のようなエラーが表示されます:未解決の識別子 'json'の使用 –

関連する問題