解析查询在自己之外给出了nil

时间:2014-12-27 02:02:51

标签: swift parse-platform null

有人可以解释我(或帮助)为什么我会这样打印:

A and B:[45.35924,14.39673,Name 1,0, 45.35509,14.40257,Name 2,7] // this is ok
C and D:nil //this is not

使用此代码:

var dataFromParse: Array<String>!

//im calling this func in viewDidLoad and I'm sending to it the ID for row in Parse
func getFromParse(ID: String) -> (){

    var take: AnyObject!
    var test: AnyObject!

    var query = PFQuery(className: "ClassName")
    query.getObjectInBackgroundWithId(ID){
        (getData: PFObject!, error: NSError!) -> Void in

        if (error == nil){

            take = getData["stations1"]
            let json2 = JSON(take)
            self.dataFromParse = json2.arrayObject as Array<String>!

            test = json2.arrayObject as Array<String>!

        }
        else{
            println(error)
        }
        println("A:\(self.dataFromParse)")
        println("B:\(test)")
    }
    println("C:\(dataFromParse)") //i need print here like i'm printing it in println("A...
    println("D:\(test)")
}

这是问题,因为我需要在整个程序中使用 dataFromParse ,而不仅仅是查询。
我已尝试在func中使用测试变量,但结果相同。
那么,我怎样才能在程序中的任何地方获得 dataFromParse

2 个答案:

答案 0 :(得分:0)

您需要在完成处理程序中收到数据时存储数据,以便以后可以访问它。如果你有C行和D行,那么数据还没有返回。

答案 1 :(得分:0)

我已经通过调用这一行代码来解决这个问题,我需要从Parse.com获取数据,以及我需要做的所有事情,我在if(!error)语句中执行。它不是主持方式,但它有效。