Jak utworzyć zmienną globalną?
Mam zmienną globalną, która musi być udostępniona moim kontrolerom Viewcontrollerów.
W Objective-C mogę zdefiniować zmienną statyczną, ale nie mogę znaleźć sposobu na zdefiniowanie zmiennej globalnej w Swift.
Czy wiesz jak to zrobić?
2 answers
From swift programming guide
Zmienne globalne to zmienne zdefiniowane poza dowolnymi funkcja, metoda, zamknięcie lub kontekst typu. Stałe globalne i zmienne są zawsze obliczane leniwie
Można go zdefiniować w dowolnym pliku i uzyskać do niego dostęp w bieżącym module
w dowolnym miejscu.
Możesz więc zdefiniować go gdzieś w pliku poza dowolnym zakresem. Nie ma potrzeby stosowania static
i wszystkie zmienne globalne są obliczane leniwie.
var yourVariable = "someString"
I możesz dostęp z dowolnego miejsca w bieżącym module.
Należy jednak unikać tego, ponieważ zmienne globalne nie są dobre dla stanu aplikacji i głównie powodu błędów.
Jak pokazano w tym odpowiedz
W swift możesz je zamknąć w struct
i mieć do nich dostęp w dowolnym miejscu.
W języku swift można również definiować zmienne statyczne lub stałe. Encapsulate in struct
struct MyVariables {
static var yourVariable = "someString"
}
Możesz użyć tej zmiennej w dowolnej klasie lub w dowolnym miejscu
let string = MyVariables.yourVariable
println("Global variable:\(string)")
//Changing value of it
MyVariables.yourVariable = "anotherString"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-17 07:22:06
Zmienne globalne, które są zdefiniowane poza dowolną metodą lub zamknięciem, mogą być ograniczone przez użycie słowa kluczowego private.
import UIKit
// MARK: Local Constants
private let changeSegueId = "MasterToChange"
private let bookSegueId = "MasterToBook"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-01 17:40:39