我在StackOverFlow上阅读了很多与此事有关的问题,但仍然无法解决问题。问题是循环事件没有在下面的代码中运行。而且我认为这是由于空值。我创建了一个名为“function
”的函数,并在Parse中查询我的类中的对象。我查询的所有对象都保存在HelperClass
的属性events
中。然后,我正在执行循环
添加event.numberOfViews
以对数组中的所有数字求和。我正在调试代码,显然events
数组是空的。我没有得到它,因为我只是将值放在evetns
数组中。把招工广告!感谢
class ViewController: UIViewController {
HelperClass().function()
}
class HelperClass: NSObject {
var events: [Event] = []
var sumOfView: Double?
func function() {
let eventQuery = PFQuery(className: "Event")
eventQuery.limit = 1000
eventQuery.findObjectsInBackgroundWithBlock { (result: [AnyObject]?, error: NSError?) -> Void in
if (error == nil) {
self.events = result as? [Event] ?? []
} else {
println("Error is \(error)")
}
}
for event in events {
array.append(event.numberOfViews)
}
sumOfView = array.reduce(0) {return $0! + $1}
}
}
答案 0 :(得分:1)
findObjectsInBackgroundWithBlock
在另一个线程上执行。如果你想用事件执行for循环,你需要在if语句中移动它。
if (error == nil) {
self.events = result as? [Event] ?? []
// perform for loop here
} else {
println("Error is \(error)")
}