У меня есть глобальная переменная, которой нужно поделиться между моими ViewControllers.
В Objective-C я могу определить статическую переменную, но не могу найти способ определить глобальную переменную в Swift.
Вы знаете, как это сделать?
swift
global-variables
czzhengkw
источник
источник
Ответы:
Из официального руководства по программированию Swift :
Вы можете определить его в любом файле и получить к нему доступ в текущем
module
месте где угодно. Таким образом, вы можете определить его где-нибудь в файле вне любой области видимости. Нет необходимости,static
и все глобальные переменные вычисляются лениво.Вы можете получить к нему доступ из любого места в текущем модуле.
Однако вам следует избегать этого, поскольку глобальные переменные не подходят для состояния приложения и, в основном, являются причиной ошибок.
Как показано в этом ответе , в Swift вы можете инкапсулировать их
struct
и получить доступ откуда угодно. Вы также можете определить статические переменные или константы в Swift. Инкапсулировать вstruct
Вы можете использовать эту переменную в любом классе или где угодно
источник
MyVariables
, поэтомуMyViewState
выглядит как ошибка копирования / вставки из stackoverflow.com/a/24868789/1187415 :)Глобальные переменные, которые определены вне любого метода или закрытия, могут быть ограничены по области с помощью ключевого слова private.
источник
если вы хотите использовать его во всех своих классах, вы можете использовать:
если вы хотите использовать только один класс, вы можете использовать:
источник