【问题标题】:How to sum column values from Parse with Swift如何使用 Swift 对 Parse 中的列值求和
【发布时间】:2017-10-13 06:33:16
【问题描述】:

我在 Swift 中设置了一个查询,它从特定列中检索一些值。我正在尝试返回符合查询的对象数量,然后将客户评分列的评分数字相加,然后将它们除以订单数量,以获得平均值。我在 StackOverflow 上发现,我可以通过将不同的评分值存储在一个数组中来做到这一点,但由于某种原因,数组中只存储了一个值,所以我不断收到错误消息。代码如下:

var ordersArray: [Int]!

let query = PFQuery(className: "Orders")
query.whereKey("customer", equalTo: customerLet)
query.findObjectsInBackgroundWithBlock({(objects, error) -> Void in
     if objects!.count == 0{
        self.ratingLabel.text = ("5.0")
     }else{
        if let objects = objects{
           for object in objects{
             let ordersAmount = objects!.count            
             self.ordersArray.append((Int(object.objectForKey("rating") as! String))!
             let totalOrders = self.ordersArray.reduce(0, combine: +)
             let ratingAverage = (totalOrders / ordersAmount)
                                }
                              }
                      }
            })

【问题讨论】:

  • 你能分享这个方法的完整代码吗,你需要在循环外计算 ratingAverage。
  • @Shabirjan 这基本上是完整的代码,我只是跳过了 if 语句的第一块,因为它与问题无关。
  • 实际上是没有右括号,所以这就是为什么我要求你分享这个方法的完整代码。
  • 在 self.ordersArray.append 上添加断点,看看你的对象是否被添加到数组中
  • 谢谢。它说objects = 3 values,但只有其中一个是从“评级”中检索到的。 “评分”的值是 4、4 和 5,但我只返回一个值,它是 4。

标签: ios arrays swift parse-platform sum


【解决方案1】:

还有一个问题是您的数组未正确初始化。应该是这样的:

var ordersArray: [Int] = []()

试试这个。

for object in objects{           
    self.ordersArray.append((Int(object.objectForKey("rating") as! String))!   
}


let ordersAmount = objects!.count 
let totalOrders = self.ordersArray.reduce(0, combine: +)
let ratingAverage = (totalOrders / ordersAmount)

【讨论】:

  • 谢谢。它仍然在 self.ordersArray.append 停止工作......“评级”仍然只从一行而不是三行返回它的值,尽管它说objects = 3 values。除此之外,它说数组是 nil。
  • 哪个数组是零?并尝试在totalOrders上添加断点,看看ordersAmount、totalOrders和self.ordersArray的值是多少。
  • 如果可能的话,我们可以做一个小型的teamviewer会话来找出错误
  • 我现在有空
  • 完美,我使用了一个名为 zoom.us 的软件,因为团队查看器在计算机上崩溃了。你有吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-08
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
  • 2015-11-26
  • 1970-01-01
相关资源
最近更新 更多