ios - 尝试将 Parse 中的一行数据提取到 Swift 中的数组中

标签 ios arrays swift parse-platform

我正在尝试将数据从 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...

当你调用它时,程序不会等待它结束并继续下一步。 您的对象:

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

是它的函数的本地对象,当你的闭包主体被调用时,你已经从父方法中走了出来,当你从闭包主体退出时,本地对象被销毁,并且它不保存你的解析数据。您需要为您在此处编写的代码创建全局对象,例如全局对象。

关于ios - 尝试将 Parse 中的一行数据提取到 Swift 中的数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33289698/

相关文章:

ios - 刷新类(class)的最佳方法

objective-c - 将 Swift 桥接到 React-Native 时得到 "is not a recognized Objective-C method"

iphone - iOS 6 & 7 状态栏设计

ios - 如何处理 Swift 3 中 UNUserNotificationCenter 和 FIRMessaging w/Firebase 的委托(delegate)?

java - 解析 JSON 时如何替换 System.out.println 作为返回?

javascript - 如何使用LoopBack 3中的where过滤相关模型(hasMany关系)

ios - 将文件上传到表单并使用 REST api 提交

iphone - 根据其 ID 加入特定的 GKTurnBasedMatch

ios - 如何显示和加载 iOS 应用程序资源/ Assets 文件夹中的音频文件?

python - 比较并计算python列表中的稀疏数组