我正在尝试发送从facebookSDK收集的用户信息,并执行HTTP POST,发送我收集存储在常量中的详细信息。
我是快速开发的新手,虽然这个解决方案可能是直截了当的,但我无法配置可行的解决方案。
我需要将fetchProfile()函数中的数据传递给data_request()函数,以将数据传递给API。
This image shows the fetchProfile() function holding the data needed to be passed to data_request()
非常感谢任何反馈或指导。
答案 0 :(得分:1)
你的两个函数都有闭包,这意味着从异步网络调用回调。因此,您的主要功能将首先完成,然后当您的网络调用完成时,将调用闭包。因此,在您的情况下,您需要等到fetchProfile()
完成异步调用才能获取数据,然后在data_request()
函数中使用它。所以它看起来像
func fetchProfile(){
//...
FBSDKGraphRequest....
void in
//prepare your data here
//call data_request
}
答案 1 :(得分: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
}