【发布时间】:2015-10-22 20:03:14
【问题描述】:
我正在尝试将 Parse 类中的数据提取到我的 Swift 项目中。我一般都在挣扎,因为我还在学习,但我至少已经到了查询成功执行并返回结果的地步。问题是数据只存在于循环对象的 for 循环中。尝试向 Parse 对象值追加数组或设置变量失败。任何想法将不胜感激,谢谢!
//Declare variables that should exist outside the query
var parseArray : [Double] = Array() //the array to store the results
var parseResult1 : Double = Double() //the variable to store one of the data points from the parse class
let parseResults = PFObject(className:"parseResults")
//declare query variable and run query
let parseResultsQuery = PFQuery(className:"parseResults")
parseResultsQuery.whereKey("username", equalTo: (PFUser.currentUser()?.username)!)
parseResultsQuery.findObjectsInBackgroundWithBlock {
(objects, error: NSError?) -> Void in
if error == nil {
for object in objects!{ //looping through returned data
print("no error in Parse lookup")
parseResult1 = object["parseResult1"] as! Double
print("Parse result in object loop: \(parseResult1)")
parseArray.append(parseResult1)
}
} else {
print(error)
}
}
print("Parse result outside of loop: \(parseResult1)")
print(parseArray)
parseResult1 变量在“for object in objects”循环(例如 7.0)中显示该值,但在循环之外,该值不存储并显示为 0.0。理想情况下,我想将与用户名键匹配的所有 Parse 值存储在 Swift 数组中,但此时我会满足于将对象一一拉出!
【问题讨论】:
-
您已关闭
findObjectsInBackgroundWithBlock { (objects, error: NSError?) -> Void in。当您调用它时,程序不会等待它结束并继续下一步。你的parseResult1是一个本地对象,当你关闭体被调用时,你已经离开了 paren 方法,当你从闭包体中退出时,本地对象被破坏并且它不会保存你的解析数据。您需要为您在此处编写的代码创建全局对象,例如全局对象
标签: ios arrays swift parse-platform