2016-09-16 8 views
2

私は何か愚かなことを頼んでいる場合、私はプログラミングをすばやくして、あなたの助けを少し必要とすることが新しいです。私はAPIへのPOSTリクエストのために私のUIViewControllerから関数を呼び出そうとしています。関数を呼び出すと、私はExpressionがに解決」直面しています式が未使用関数に解決されました(Swift)

// MARK: Perform a POST Request 
    private func makeHTTPPostRequest(path: String, requestBody: String, onCompletion: ServiceResponse) { 
     let request = NSMutableURLRequest(URL: NSURL(string: path)!) 

     // Set the method to POST 
     request.HTTPMethod = "POST" 

     do { 
      // Set the POST body for the request 
      // let jsonBody = try NSJSONSerialization.dataWithJSONObject(body, options: .PrettyPrinted) 
      // request.HTTPBody = jsonBody 
      request.HTTPBody = requestBody.dataUsingEncoding(NSUTF8StringEncoding); 
      let session = NSURLSession.sharedSession() 

      let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in 
       if let jsonData = data { 
        let json:JSON = JSON(data: jsonData) 
        onCompletion(json, nil) 
       } else { 
        onCompletion(nil, error) 
       } 
      }) 
      task.resume() 
     }/* catch { 
      // error 
      onCompletion(nil, nil) 
     }*/ 
    } 

typealias ServiceResponse = (JSON, NSError?) -> Void 

この

@IBAction func actionStartSignIn(sender: AnyObject) { 
      let email: String = txtEmail.text! 
      let password: String = txtPassword.text! 
      if !email.isEmpty && !password.isEmpty && General.isValidEmail(email) && password.characters.count>6{ 
       var request = RequestResponse() 
       request.email = email 
       request.password = password 
       let isValid = NSJSONSerialization.isValidJSONObject(request) 
       print(isValid) 
       var requestBody: String = "" 

       // Facing issue in following line 
       RequestManager.sharedInstance.postRequest(Constants.BASE_URL + Constants.LOGIN, body: requestBody, onCompletion: {(json: JSON) in{ 
          let result = json["response"] 
          print(result) 

         } 
        } 
       ) 
      } 
     } 

のようなもので、呼び出された関数はさらに、この

func postRequest(route: String, body: String, onCompletion: (JSON) -> Void) { 
     makeHTTPPostRequest(route, requestBody: body, onCompletion: { json, err in 
      onCompletion(json as JSON) 
     }) 
    } 

のようなものです未使用の関数 "cal ling

RequestManager.sharedInstance.postRequest(Constants.BA‌​SE_URL + Constants.LOGIN, body: requestBody, onCompletion: {(json: JSON) in{ let result = json["response"] print(result) } }) 

いくつかの基本的な構文がありません。どんな助けでも本当に感謝します。

ありがとうございます。

+0

ているのですか?あなたはどの問題に遭遇しましたか? – t4nhpt

+0

式は未使用の関数に解決されます。 通話中 RequestManager.sharedInstance.postRequest(Constants.BASE_URL + Constants.LOGIN, body: requestBody, onCompletion: {(json: JSON) in{ let result = json["response"] print(result) } } )

+0

ご質問に更新してください。 – t4nhpt

答えて

3

が問題を解決した後に{ }フェーズを削除します。 それは次のようになります:閉鎖のparamについては

​​3210

を、あなたはタイプミスを防ぐために、自分でそれを入力してはいけません。 tab keyを使用してそのパラメータを選択し、Enterキーを押すと、xCodeが自動的にコードを生成します。私は言った方法を使用している場合

、末尾の閉鎖は、次のようになります。あなたの質問はどこ

RequestManager.sharedInstance.postRequest(Constants.BASE_URL + Constants.LOGIN, body: requestBody) { (json) in 
         let result = json["response"] 
         print(result) 
       } 
+0

ohh ..ありがとうございました。私の推測として は「SYNTAX」エラーだった... :(お時間を 私はJAVAの背景からスウィフトクロージャで困難な時期に直面しています申し訳ありません。 ありがとう。:) t4nhpt素晴らしい答え@ –

+0

!どうもありがとうございました!多くの時間を節約します。 –

関連する問題