如何在Swift中修改閉包中的值或至少從閉包中獲取數據?我有一個全局變量在類之外聲明,我試圖從閉包或完成塊中修改它;但是,它沒有被修改,我不能從封閉內部獲取數據。如何在swift中修改閉包中的全局變量?
var someGlobalVariable = 0
class someClass{
dispatch_async(dispatch_get_main_queue(), {() -> Void in
someGlobalVarible += 1
})
}
print(someGlobalVariable) // returns 0 and not 1
}
如果您發佈了一個不適合您的示例,因爲您可以修改外部變量而不做任何特殊處理,所以最好。你可以保留週期,但這是另一個問題。 –
該示例不編譯。 – zneak
這不是有效的swift代碼。我不推薦嘗試你不明白的代碼(這可怕的是破壞了),在做任何其他事情之前,先閱讀Apple的Swift書。 –