我有一个全局定义的变量,当使用self.lastReading在块内访问时,它没有在块中定义值。如何获取块中定义的值?
var lastReading = 0
Query.getFirstObjectInBackgroundWithBlock(
{(data:PFObject?,error:NSError?) -> Void in
var dataEntry = data!
var Reading: AnyObject! = dataEntry["reading"]!
self.lastReading = Reading.integerValue
})
编辑:lastReading变量是在类中定义的全局变量。
答案 0 :(得分:2)
看起来像:
var lastReading = 0
在类中定义(更好地添加上下文代码以了解它的定义)。如果是这种情况,您可能正在另一个线程中执行块/闭包。所以:
我最好调用一个方法来更新块末尾的lastReading:
var lastReading = 0
Query.getFirstObjectInBackgroundWithBlock(
{(data:PFObject?,error:NSError?) -> Void in
var dataEntry = data!
var Reading: AnyObject! = dataEntry["reading"]!
self.updatelastReading(Reading.integerValue)
})