从另一个函数中引用常量

时间:2017-07-06 10:21:22

标签: ios swift facebook variables constants

我正在尝试发送从facebookSDK收集的用户信息,并执行HTTP POST,发送我收集存储在常量中的详细信息。

我是快速开发的新手,虽然这个解决方案可能是直截了当的,但我无法配置可行的解决方案。

我需要将fetchProfile()函数中的数据传递给data_request()函数,以将数据传递给API。

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()

非常感谢任何反馈或指导。

2 个答案:

答案 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
}