2017-07-06 6 views
0

facebookSDKから収集したユーザー情報を送信しようとしていて、収集した詳細を定数に格納してHTTP POSTを送信しようとしています。別の関数の定数を参照する

私は迅速な開発に直面していますが、この解決策はまっすぐであるかもしれませんが、私は実行可能なソリューションを構成することができません。

データをAPIに渡すには、fetchProfile()関数のデータをdata_request()関数に渡す必要があります。

The image shows the data_request function, highlighted is the line where i need to reference the data stored in constants within the fetchProfile() function

This image shows the fetchProfile() function holding the data needed to be passed to data_request()

任意フィードバックまたはガイダンスが大幅に高く評価されています。

+0

まず、[尋ねる]読み進んでくださいこれは次のように、それがどのように見えるべきかです。関連するコードは、外部サイトの画像ではなく、テキスト形式で質問に直接含まれます。 – CBroe

答えて

1

どちらの関数もクロージャを持っています。つまり、非同期ネットワークコールからのコールバックです。メイン関数が最初に終了し、ネットワークコールが終了すると、クロージャが呼び出されます。したがって、あなたの状況では、データを取得するためにfetchProfile()が非同期呼び出しを終了し、それをdata_request()機能で使用するまで待つ必要があります。だから、

Fangmingによって投稿解答時に改善
func fetchProfile(){ 
    //... 
    FBSDKGraphRequest.... 
     void in 
     //prepare your data here 
     //call data_request 
} 
0

のようになります、あなたは(のFetchProfileで受信したデータを渡す必要があります)data_requestに()とFBSDKGraphRequest.startの完了ブロックの最後にそれを呼び出します。

func fetchProfile() { 
    FBSDKGraphRequest(...).start { 
     // create a dictionary to hold all the values returned 
     let values: [String: Any] 

     // fetch all values in to the dictionary 
     // ... 

     // call data_request by passing URL and the dictionary 
     data_request(url, params: values) 
    } 
} 

今すぐ data_request関数は次のようになります:すべての

func data_request(url: String, params: [String: Any]) { 
    // your implementation here 
} 
関連する問題