Facebook / Swift:调试器跳过线路

时间:2015-05-26 21:18:46

标签: facebook swift facebook-graph-api

我正在尝试在Swift中执行FBSDKGraphRequest并在其中运行一些代码。问题是,在以下代码中,"Boston"正在"numbersArray: \(numbersArray)")之前打印,这对我来说没有意义。 graphRequest函数不应该在它之前的任何内容之前完成执行吗?我该如何解决这个问题?

class Test {

    class func test() {

        let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me/", parameters: nil)
        graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in

            var array = ["1", "2", "3"]
            var numbersArray = [String]()

            for number in array {
                numbersArray.append(number)
            }

            println("numbersArray: \(numbersArray)")

        })

        println("Boston")

    }
}

1 个答案:

答案 0 :(得分:0)

这是因为在graphRequest.startWithCompletionHandler中设置了一个闭包,当请求完成时,它将被异步调用。

尽管可以以某种方式转换同步调用中的调用,但它没有意义,因为这是预期的行为,否则线程(可能是main_thread)将一直停留,直到调用完成。 / p>