Как изменить значение в закрытии или, по крайней мере, получить данные из закрытия в 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, прежде чем делать что-либо еще. –