如何在swift中修改闭包内的全局变量?

时间:2016-07-10 19:40:30

标签: swift global-variables closures completionhandler

如何修改闭包中的值或至少从Swift中的闭包中获取数据?我有一个在类外声明的全局变量,我试图从闭包或完成块中修改它;但是,它没有被修改,我无法从闭包内部获取数据。

  var someGlobalVariable = 0 

  class someClass{


dispatch_async(dispatch_get_main_queue(), { () -> Void in

                        someGlobalVarible += 1 






                    })
  }

   print(someGlobalVariable) // returns 0 and not 1 
}

2 个答案:

答案 0 :(得分:1)

如果我没记错的话,你可以通过添加self来访问全局变量。到闭包内的变量

self.someGlobalVariable

答案 1 :(得分:0)

您必须在更新后打印变量。

dispatch_async(dispatch_get_main_queue(), { () -> Void in

    someGlobalVarible += 1 
    print(someGlobalVariable) // will print 1
})
}