繁体   English   中英

解析中的查询类(Swift)

[英]Query class in Parse (swift)

我有一个奇怪的问题。 以下代码块放在第一个View Controller的viewDidAppear部分中,并且在运行时,println(latArray),println(longArray),println(addressArray)均不返回任何值。 在控制台中,它为所有三个数组返回[]。 但是,当我转到另一个视图控制器并返回时,它将填充来自Parse的数据。 为什么是这样? 为什么在第一次使用viewWillAppear方法加载应用程序时,为什么不会填充latArray,longArray和addressArray?

    var query = PFQuery(className: "NewLog")

    // Add a where clause if there is a search criteria
    query.whereKey("Type", containsString: newRecordCreated)

    println(query)

    query.findObjectsInBackgroundWithBlock({
        (objects, error) -> Void in
        if error == nil {
            // Results were successfully found
            if let objects = objects as? [PFObject] {
                for object in objects {
                    //println(object["follower"])
                    latArray.append(object["Lat"] as! Double)
                    longArray.append(object["Long"] as! Double)
                    addressArray.append(object["Address"] as! String)
                }
            }
            // self.tableView.reloadData()
        } else {
            println("error")
            // The network was inaccessible and we have no cached data for
            // this query.
        }
    })

    println(latArray)
    println("^^Latitude values")
    println(longArray)
    println("^^Longitude values")
    println(addressArray)
    println("^^Address values")
}

该查询正在后台执行。 查询完成后,将执行块(关闭)中的代码。 注意:这可能是并且最有可能是在viewDidAppear完成之后。 如果将打印语句放在for循环之后,则应该看到值。 如果取消注释reloadData方法,则查询结束后,应使用新信息更新表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM