Mam zmienną globalną, którą należy udostępnić moim kontrolerom ViewControllers.
W Objective-C mogę zdefiniować zmienną statyczną, ale nie mogę znaleźć sposobu na zdefiniowanie zmiennej globalnej w Swift.
Czy wiesz, jak to zrobić?
swift
global-variables
czzhengkw
źródło
źródło
Odpowiedzi:
Z oficjalnego przewodnika programowania Swift :
Możesz zdefiniować go w dowolnym pliku i mieć do niego dostęp w
module
dowolnym miejscu. Możesz więc zdefiniować to gdzieś w pliku poza jakimkolwiek zakresem. Nie ma potrzeby,static
a wszystkie zmienne globalne są obliczane leniwie.Możesz uzyskać do niego dostęp z dowolnego miejsca w bieżącym module.
Jednak powinieneś tego unikać, ponieważ zmienne globalne nie są dobre dla stanu aplikacji, a głównie z powodu błędów.
Jak pokazano w tej odpowiedzi , w Swift możesz je zamknąć
struct
i uzyskać dostęp z dowolnego miejsca. Możesz także zdefiniować zmienne statyczne lub stałe w Swift. Hermetyzuj wstruct
Możesz użyć tej zmiennej w dowolnej klasie lub w dowolnym miejscu
źródło
MyVariables
, więcMyViewState
wygląda na błąd kopiowania / wklejania ze stackoverflow.com/a/24868789/1187415 :)Zakres zmiennych globalnych, które są zdefiniowane poza jakąkolwiek metodą lub zamknięciem, można ograniczyć za pomocą słowa kluczowego private.
źródło
jeśli chcesz go używać na wszystkich swoich zajęciach, możesz użyć:
jeśli chcesz używać tylko w jednej klasie, możesz użyć:
źródło