【问题标题】:iOS How to download data from database in array parse SwiftiOS如何在数组解析Swift中从数据库下载数据
【发布时间】:2018-11-27 23:34:41
【问题描述】:

我有一个问题,我在一个类中有数据库,我在这个类中有 1 行有 12 个值,这些值不会改变。 所以我想加载数组中的所有数据。

现在我为单独的变量加载数据。 我的代码:

var JAN = Double()
var FEB = Double()
var MAR = Double()
var APR = Double()
var MAY = Double()
var JUN = Double()
var JUL = Double()
var AUG = Double()
var SEP = Double()
var OCT = Double()
var NOV = Double()
var DEC = Double()

以及加载数据的代码:

     let query = PFQuery(className: "result")
    query.findObjectsInBackground { (objects, error) in
        for object in objects! {
            self.JAN = object["JAN"] as! Double
            self.FEB = object["FEB"] as! Double
            self.MAR = object["MAR"] as! Double
            self.APR = object["APR"] as! Double
            self.MAY = object["MAY"] as! Double
            self.JUN = object["JUN"] as! Double
            self.JUL = object["JUL"] as! Double
            self.AUG = object["AUG"] as! Double
            self.SEP = object["SEP"] as! Double
            self.OCT = object["OCT"] as! Double
            self.NOV = object["NOV"] as! Double
            self.DEC = object["DEC"] as! Double
        }

    }

我在单独的变量中加载的所有这些数据,我想保存在一个数组中。 所以我想将所有数据加载到一个数组中,我该怎么做?

【问题讨论】:

  • 创建 [Double]() 数组并将您的值附加到数组中。
  • 我在单独的变量中加载的所有数据,我想保存在一个数组中。
  • 您需要学习 Swift 的基础知识,因为这不应该是关于 SO 的问题,您可以为此创建一个简单的结构或使用元组,如下面的答案。

标签: ios arrays swift parse-platform


【解决方案1】:

可以使用 touples 数组
假设您有来自objects 的单个object

var array = [(name: String, value: Double)]()
let query = PFQuery(className: "result")
query.findObjectsInBackground { (objects, error) in
    if let object in objects?.first {
        array.append((name: "JAN", value: object["JAN"] as! Double))
        array.append((name: "FEB", value: object["JAN"] as! Double))
        ...
    }
}
// use it as
for each in array {
    print("\(each.name): \(each.value)")
}

您还可以添加所有(键,值)对,而无需指定来自 object 的键,具体取决于您的 object 类型。如果是字典,那么

query.findObjectsInBackground { (objects, error) in
    if let object in objects?.first {
        for key in object.keys {
            array.append((name: key, value: object[key] as! Double))
        }
    }
}

【讨论】:

    【解决方案2】:
    let query = PFQuery(className: "result")
            query.findObjectsInBackground { (objects, error) in
                 ServerData.init(JAN: object["JAN"], FEB: object["FEB"], MAR: object["MAR"], APR: object["APR"], MAY: object["MAY"], JUN: object["JUN"], JUL: object["JUL"], AUG: object["AUG"], SEP: object["SEP"], OCT: object["OCT"], NOV: object["NOV"], DEC: object["DEC"])
    
            }
    

    拍下serverData struct class

    import Foundation
    struct ServerData {
    
    var JAN :Double?
    var FEB : Double?
    var MAR : Double?
    var APR : Double?
    var MAY : Double?
    var JUN : Double?
    var JUL : Double?
    var AUG : Double?
    var SEP : Double?
    var OCT : Double?
    var NOV : Double?
    var DEC : Double?
    
        init(JAN: Double,FEB: Double,MAR:Double,APR:Double,MAY:Double,JUN:Double,JUL:Double,AUG:Double,SEP:Double,OCT:Double,NOV:Double,DEC: Double) {
            self.JAN = JAN
            self.FEB = FEB
            self.MAR = MAR
            self.APR = APR
            self.MAR = MAY
            self.JUN = JUN
            self.JUL = JUL
            self.AUG = AUG
            self.SEP = SEP
            self.OCT = OCT
            self.NOV = NOV
            self.DEC = DEC
        }
    }
    

    【讨论】:

    • 这不是 OP 想要的。
    猜你喜欢
    • 2018-03-19
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 2019-10-30
    相关资源
    最近更新 更多