如何修改闭包中的值或至少从Swift中的闭包中获取数据?我有一个在类外声明的全局变量,我试图从闭包或完成块中修改它;但是,它没有被修改,我无法从闭包内部获取数据。
var someGlobalVariable = 0
class someClass{
dispatch_async(dispatch_get_main_queue(), { () -> Void in
someGlobalVarible += 1
})
}
print(someGlobalVariable) // returns 0 and not 1
}
答案 0 :(得分:1)
如果我没记错的话,你可以通过添加self来访问全局变量。到闭包内的变量
self.someGlobalVariable
答案 1 :(得分:0)
您必须在更新后打印变量。
dispatch_async(dispatch_get_main_queue(), { () -> Void in
someGlobalVarible += 1
print(someGlobalVariable) // will print 1
})
}